JAVA-do的错误变量。。虽然
我在编译作业代码时遇到问题 当我将开关菜单的扫描器输入用作整数值时,JAVA-do的错误变量。。虽然,java,Java,我在编译作业代码时遇到问题 当我将开关菜单的扫描器输入用作整数值时,do while工作正常,但由于分配要求,菜单输入需要为char,因此我对其进行如下更改,但它不断给我错误,说明未找到m的变量 do { System.out.println(displayMenu("")); option = scn.nextLine(); char m = option.charAt(0); switch (m) { case 'A': TMA_Q3.enterInput(
do while
工作正常,但由于分配要求,菜单输入需要为char,因此我对其进行如下更改,但它不断给我错误,说明未找到m
的变量
do {
System.out.println(displayMenu(""));
option = scn.nextLine();
char m = option.charAt(0);
switch (m) {
case 'A': TMA_Q3.enterInput(0); break;
case 'B': System.out.println(" "); break;
case 'C': System.out.println(""); break;
case 'D': System.out.println(""); break;
case 'E': System.out.println(""); break;
case 'F': System.out.println(""); break;
}
} while(m != 'F'); // error occurs on this line stating m is not found
m
超出了范围do{
,因为您在do{
中定义了它
试着像这样重构:
char m;
do {
System.out.println(displayMenu(""));
option= scn.nextLine();
m = option.charAt(0);
...
您必须在
do
中声明m
:
char m='';
do {
//...
} while(m!='F');
变量
m
超出范围。您需要在do…while
循环之外定义它
System.out.println(displayMenu(""));
option= scn.nextLine();
char m='';
必须在do语句之外。
尝试在下面的代码中反转您的代码:
并为其指定一些默认值+1@JigarJoshi,因为如果输入为空,它可能会抛出
StringIndexOutOfBoundsException
。您必须在do之外/之前预定义M,否则它将超出范围搜索错误消息将产生有用的结果。此外,请确保包含“n”粘贴副本。
System.out.println(displayMenu(""));
option= scn.nextLine();
char m =option.charAt(0);
do{
m =option.charAt(0);
switch (m) { case 'A': TMA_Q3.enterInput(0);break;
case 'B': System.out.println(" "); break;
case 'C': System.out.println(""); break;
case 'D': System.out.println(""); break;
case 'E': System.out.println(""); break;
case 'F': System.out.println(""); break;
}
}
while( m!='F');