Я хочу создать программу меню, с различными вариантами:Переменные Ошибки в программе меню
1)Enter Name
2)Display Name
3)Change Name
4)Quit
Но по какой-то причине я не могу получить переменную, используемую для хранения имени в Q1, которые будут использоваться в 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
Вы должны объявить переменные за пределами своего цикла. –