需要帮助制作一个计算器,在不使用.math或.pow函数的情况下计算指数/幂.使用循环



我正在尝试制作一个带有+-/*和幂函数的计算器。除了电源按钮,我什么都想好了。如何在不使用.math或.pow,只使用循环的情况下为幂函数制作按钮?我什么都试过了,但就是不起作用。也许我对循环的理解还很薄弱,但我认为我是正确的。

function addTwoNumbers() {
var number1 = document.getElementById('box1').value;
var number2 = Number(document.getElementById('box2').value);
var sum = Number(number1) + number2;
document.getElementById('resultBox').value = sum;
}
function subtractTwoNumbers() {
var number1 = document.getElementById('box1').value;
var number2 = Number(document.getElementById('box2').value);
var difference = Number(number1) - number2;
document.getElementById('resultBox').value = difference;
}
function divideTwoNumbers() {
var number1 = document.getElementById('box1').value;
var number2 = Number(document.getElementById('box2').value);
var quotient = Number(number1) / number2;
document.getElementById('resultBox').value = quotient;
}
function multiplyTwoNumbers() {
var number1 = document.getElementById('box1').value;
var number2 = Number(document.getElementById('box2').value);
var result = Number(number1) * number2;
document.getElementById('resultBox').value = result;
}
function useExponents(base, exponents) {
var base =
document.getElementById('box1').value;
var exponents =
Number(document.getElementById('box2').value);
var result = base;
for (var count = 1; count < exponent; count++) {
result *= base;
}
return result
document.getElementById('resultBox').value = result
}
function clearall() {
document.getElementById('box1').value = "";
document.getElementById('box2').value = "";
document.getElementById('resultBox').value = "";
}
<h1>Calc-o-Matic</h1>
<input type="text" id="box1"> <br/>
<input type="text" id="box2">
<button onclick="addTwoNumbers()">+</button>
<button onclick="subtractTwoNumbers()">-</button>
<button onclick="divideTwoNumbers()">/</button>
<button onclick="multiplyTwoNumbers()">*</button>
<button onclick="useExponents(base, exponents)">^</button>
<button onclick="clearall()">clear</button>
<br/>
<input type="text" id="resultBox"> <br/>

您的代码似乎是正确的,但您有一些小错误:

1( 您需要从useExponents函数中删除return result行,因为它停止了函数,然后才能将结果写入文本框

2( 您需要将<button onclick="useExponents(base, exponents)">^</button>转换为<button onclick="useExponents()">^</button>,因为此函数从文本框中读取其参数。此外,您还可以将函数声明useExponents(base, exponents)转换为useExponents()

3( 您在for循环中将变量exponents拼错为exponent,需要修复

逻辑是健全的;看起来,您真正遇到的问题只有1(变量声明中的拼写错误(指数应该是指数(和2(在将答案放入DOM元素之前返回。

我还调整了下面的代码,以删除您传递给函数的参数,因为您实际上并没有使用它们。

function useExponents() {
var base = document.getElementById('box1').value;
var exponent = Number(document.getElementById('box2').value);
var result = base;
for (var count=1;count<exponent;count++){
result *= base;
}
document.getElementById('resultBox').value = result
}
function useExponents() {
var base =
document.getElementById('box1').value;
var exponents =
Number(document.getElementById('box2').value);
var result = base;
for (var count = 1; count < exponents; count++) {
result *= base;
}
document.getElementById('resultBox').value = result;
return result;
}
<button onclick="useExponents()">^</button>
  1. 当您在html中调用函数时,您不需要放置任何具有参数的东西,因为您不使用这些参数。我把那些拿走了
  2. 您的for循环中有一个拼写错误。你写的是exponent而不是exponents。我搞定了
  3. 您在完成函数之前返回了一个结果,这导致函数结束。return之后的任何内容都不会被执行。而且你实际上不需要归还任何东西。拆下回流管

下面是一个工作示例:

function addTwoNumbers() {
var number1 = document.getElementById('box1').value;
var number2 = Number(document.getElementById('box2').value);
var sum = Number(number1) + number2;
document.getElementById('resultBox').value = sum;
}
function subtractTwoNumbers() {
var number1 = document.getElementById('box1').value;
var number2 = Number(document.getElementById('box2').value);
var difference = Number(number1) - number2;
document.getElementById('resultBox').value = difference;
}
function divideTwoNumbers() {
var number1 = document.getElementById('box1').value;
var number2 = Number(document.getElementById('box2').value);
var quotient = Number(number1) / number2;
document.getElementById('resultBox').value = quotient;
}
function multiplyTwoNumbers() {
var number1 = document.getElementById('box1').value;
var number2 = Number(document.getElementById('box2').value);
var result = Number(number1) * number2;
document.getElementById('resultBox').value = result;
}
function useExponents() {
var base =
document.getElementById('box1').value;
var exponents =
Number(document.getElementById('box2').value);
var result = base;
for (var count = 1; count < exponents; count++) {
result *= base;
}
document.getElementById('resultBox').value = result
}
function clearall() {
document.getElementById('box1').value = "";
document.getElementById('box2').value = "";
document.getElementById('resultBox').value = "";
}
<h1>Calc-o-Matic</h1>
<input type="text" id="box1"> <br/>
<input type="text" id="box2">
<button onclick="addTwoNumbers()">+</button>
<button onclick="subtractTwoNumbers()">-</button>
<button onclick="divideTwoNumbers()">/</button>
<button onclick="multiplyTwoNumbers()">*</button>
<button onclick="useExponents()">^</button>
<button onclick="clearall()">clear</button>
<br/>
<input type="text" id="resultBox"> <br/>

最新更新