虽然ch
变量是在循环外声明的,但while循环不会识别它。为什么?没有编译错误。
package calculator;
import java.util.Scanner;
public class Calculation {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int ch;
do {
System.out.print("ENTER YOUR CHOICE : ");
ch = s.nextInt();
switch (ch) {
case 1: {
}
.....
default: {
System.out.println("n!!!ENTER VALID CHOICE !!!");
break;
}
}
} while (ch != 9);
s.close();
}
}
将默认大小写的break语句放在大括号之外。我认为这是你的问题。我尝试了下面的代码并给出了输出。
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
int ch;
do {
System.out.print("ENTER YOUR CHOICE : ");
ch=s.nextInt();
switch(ch)
{
case 1:
System.out.println("one");
break;
default:
System.out.println("n!!!ENTER VALID CHOICE !!!");
break;
}
}while(ch!=9);
s.close();
}
}
- 此代码运行良好。父块的元素始终可见
- 在
default
的情况下不要使用break
您的代码:
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int ch;
do {
System.out.print("ENTER YOUR CHOICE : ");
ch = s.nextInt();
switch (ch) {
case 1:
System.out.println("one");
break;
default:
System.out.println("n!!!ENTER VALID CHOICE !!!");
}
} while (ch != 9);
s.close();
}
}
*只有我所做的编辑才从default
块中删除了break
。
运行示例:
ENTER YOUR CHOICE : 1
one
ENTER YOUR CHOICE : 2
!!!ENTER VALID CHOICE !!!
ENTER YOUR CHOICE : 3
!!!ENTER VALID CHOICE !!!
ENTER YOUR CHOICE : 9
!!!ENTER VALID CHOICE !!!