1
我想創建一個菜單程序,使用不同的選項:變動誤差在菜單程序
1)Enter Name
2)Display Name
3)Change Name
4)Quit
但由於某些原因,我不能讓用於存儲在第一季度的名義變量,要在使用Q2!
下面的代碼:(如果2出現的錯誤,與可變FULL_NAME被紅色下劃線和不工作)
package Testing;
import java.util.Scanner ;
public class Menu {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
// print menu
for (int i = 1; i <= 5; i++)
System.out.println(i + ". Menu item #" + i);
System.out.println("0. Quit");
// handle user commands
boolean quit = false;
int menuItem;
do {
System.out.print("Choose menu item: ");
menuItem = in.nextInt();
switch (menuItem) {
case 1:
System.out.println("You've chosen item #1");
{
Scanner user_input = new Scanner(System.in);
String first_name;
System.out.print("Enter your first name: ");
first_name = user_input.next();
String family_name;
System.out.print("Enter your family name: ");
family_name = user_input.next();
String full_name;
full_name = first_name + " " + family_name;
System.out.println("You are " + full_name);
}
break;
case 2:
System.out.println("You've chosen item #2");
System.out.println("You are " + full_name);
break;
case 3:
System.out.println("You've chosen item #3");
// do something...
break;
case 4:
System.out.println("You've chosen item #4");
// do something...
break;
case 5:
System.out.println("You've chosen item #5");
// do something...
break;
case 0:
quit = true;
break;
default:
System.out.println("Invalid choice.");
}
} while (!quit);
System.out.println("Bye-bye!");
}
}
變量未在'case2'可以看到的範圍內聲明。將變量聲明移到'do'之外。 – RealSkeptic
你應該在你的循環之外聲明你的變量。 –