当我输入一个字符串运算符时,无论是加法()、减法(-)、乘法(*)、除法(/)还是模块(%),即使我输入了一个有效的输入,它仍然会进入而循环。我不知道问题可能是什么,因为当循环工作正常时,我必须为变量Num2输入一个int值。
import java.util.Scanner;
public class PolishNotationCalc {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num1;
int num2;
String operator;
System.out.println("Polish notation calculator");
System.out.print("Please enter an operation(+, -, *, /, %) ");
operator = input.nextLine();
while (!operator.equals("+") || !operator.equals("-") || !operator.equals("*") || !operator.equals("/") || !operator.equals("%")) {
System.out.println("Please enter a valid operation ");
operator = input.nextLine();
if (operator.equals("+") || operator.equals("-") || operator.equals("*") || operator.equals("/") || operator.equals("%"))
break;
}
System.out.print("");
System.out.print("Please enter the first number ");
num1 = input.nextInt();
System.out.print("Please enter the second number ");
num2 = input.nextInt();
while (num2 == 0 && operator.equals("/")) {
System.out.println("Please pick a non zero number: ");
num2 = input.nextInt();
}
while (num2 == 0 && operator.equals("%")) {
System.out.println("Please pick a non zero number: ");
num2 = input.nextInt();
}
if (operator.equals("+"))
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2));
else if (operator.equals("-"))
System.out.println(num1 + " - " + num2 + " = " + (num1 - num2));
else if (operator.equals("*"))
System.out.println(num1 + " * " + +num2 + " = " + (num1 * num2));
else if (operator.equals("/"))
System.out.println(num1 + " / " + num2 + " = " + (num1 / num2));
else if (operator.equals("%"))
System.out.println(num1 + " % " + num2 + " = " + (num1 % num2));
}
}
如果您用英语编写布尔选择,它将显示“当运算符不等于”“或不等于“-”或不等于“/”或不等于“*”或不等于“%”,请执行循环。
你需要它说“虽然运算符不等于”“它不等于”-“它不等于”/“它不等于”*“它不等于”%”这样做循环。
更改||to
对于一个要执行的循环,所有参数都需要为true。因此,如果其中一个参数为false,则不激活而循环。
我是一个初学者,我从一本书中复制了这段代码,但它不起作用,因为当我进入EOF时,程序将两次打印默认消息,而不是退出while循环。这就像一个小时,我在寻找解决方案,但我所尝试的一切都不起作用,谢谢你的帮助。该程序应该计算每种等级的数量。
我想写一个计算长除法问题总进位的代码。这是我为carries编写的函数。我相信问题在于,第一个while循环并没有一直运行。如果是,为什么?这是在Python 3.5中实现的。
我试图让程序允许用户输入一个数字,然后让计算机告诉用户这个数字是否太小、太大或等于随机生成的数字。提示和输入有效,但在第一次扫描后就卡住了。 我认为这与scanf有关,而不是与条件有关,因为我添加了printf(“测试停止点”),但它不会打印到用户屏幕上。我做错了什么?
当if语句为假时,为什么“无效运算符”会打印?我可以使用elif语句使其工作吗?
我试图在Eclipse中调试一个简单的java程序,结果出现了以下错误: 本机方法中的致命错误:JDWP未初始化任何传输,jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)错误:传输错误202:连接失败:连接超时错误:JDWPTransport dt_socket未能初始化,TRANSPORT_nit(510)JDWP退出错误AGENT_ERROR_TRANSPO
我目前有2个pthread正在运行,我想等待其中一个结束,以便我的程序继续运行。 在我的pthreads中,我有一个可以为真或假的变量(它是一个全局变量)。创建线程后(一个在cin中请求输入,一个等待10秒,如果达到10秒,它会杀死“cin”线程并结束自己,如果检测到cin,“cin”线程会杀死“计时器”线程),我希望我的程序等待。当每个线程结束时,它们将变量“stoptimer”置为真。 首先,