int wmath1 = 1;
do {
if (wmath.equals(add)) {
System.out.print(5 + 5);
} else if (wmath.equals(sub)) {
System.out.println(6 - 2);
} else {
System.out.println("sorry but that not an option");
int wmath1 = 0;
}
} while (wmath1 < 1);
}
我正在尝试创建一个循环,如果用户没有选择任何给定的选项,那么循环将再次发生,这样他就可以选择一个给定的选项,而无需重新执行该程序。
然而,当我首先分配wmath = 1
时,如果else语句没有运行,那么应该允许循环结束但是它给了我wmath1
被重用的错误,即使它应该让你重命名变量。
上面的代码只是代码的do while循环部分。扫描仪部件名称wmath未给出。
答案 0 :(得分:1)
你不应该在循环中重新声明wmath1
。只需更新循环之前声明的变量值。
更改
int wmath1 = 0;
到
wmath1 = 0;
答案 1 :(得分:0)
首先,正如其他评论所指出的那样,你不应该在if块中重新声明wmath
。
您的代码还有另一个问题。如果用户在第一次尝试中没有选择任何选项但在第二次尝试中选择add
或sub
,该怎么办? do-while循环仍将运行,不幸的是,永远。
答案 2 :(得分:0)
正如其他人对你说的那样,你不能重新宣布wmath只需要重估它 在这里你得到了我解决它的方式:
Scanner sc= new Scanner(System.in);
int wmath = sc.nextInt();
boolean ok=false;
do {
if (wmath==1) {
ok=true;
System.out.print(5 + 5);
} else if (wmath==2) {
ok=true;
System.out.println(6 - 2);
} else {
System.out.println("sorry but that not an option");
//here you have to change the value of wmath by the value that user insert
wmath = sc.nextInt();
}
} while (ok==false);