因此,我最近在Java中制作了一个计算器作为作业,并且我已经找到了制作它的所有方法,直到发球台。我已经完成了if
语句和switch
语句,以允许用户根据他们使用的运算符来获得不同的答案(/, *, +, -)
,但是,我还不太了解for
,do
并且do-while
还没有循环将其集成到我的程序中。
这是我的计算器的源代码。如你所见,如果switch语句不是运算符,则它会显示“ Invalid”(无效),但是,我不希望用户重新运行整个应用程序,而是希望它循环(而不是仅针对运算符,而是针对以及数字)
import java.util.Scanner;
public class JCal
{
public static void main (String[] args)
{
Scanner input = new Scanner(System.in);
double num1, num2, divided, multiplied, added, subtracted;
char operator;
System.out.print("Value A: ");
num1 = input.nextDouble();
System.out.print("Operator (/, *, +, -): ");
operator = input.next().charAt(0);
System.out.print("Value B: ");
num2 = input.nextDouble();
divided = num1 / num2;
multiplied = num1 * num2;
added = num1 + num2;
subtracted = num1 - num2;
switch (operator)
{
case '/':
{
System.out.println("Result: " + divided);
break;
}
case '*':
{
System.out.println("Result: " + multiplied);
break;
}
case '+':
{
System.out.println("Result: " + added);
break;
}
case '-':
{
System.out.println("Result: " + subtracted);
break;
}
default:
{
System.out.println("Invalid operator!");
break;
}
}
}
}
我尝试了类似的东西:
double num1;
Scanner input = new Scanner(System.in);
do
{
System.out.println("Value A: ");
while (! input.hasNextDouble());
{
System.out.println("Invalid number!");
input.nextDouble();
}
} while (num1 = input.hasNextDouble());
根据IntelliJ的说法,这while (num1 = input.hasNextDouble());
就是我被卡住的地方,是aboolean
和double
冲突(我假设因为num1是a double
,并且.hasNext
函数给出a boolean
,所以它们不在一起。)所以IntelliJ在红色下划线标出。
非常感谢,如果你抽出宝贵的时间来帮助我解决这个可能很琐碎的问题。
也许你可以创建一个'bool Exit'变量并将其初始设置为False
将整个代码(显然是main除外)放入do while循环中,条件是直到exit为真
main {
do {
... your code
}while(Exit != True)
}
因此,在每次运行结束后,你都可以要求用户尝试其他计算(是/否),如果否,请将Exit设置为true,你的程序将退出循环。如果是,则将Exit设置为False,你的程序将再次循环。
您是否可以编辑答案以使其更像Java,例如
boolean
notbool
。Java命名约定的变量以小写字母开头(退出,而不是退出)。
Java中没有True常量,尽管有一个true常量。