java - 菜单程序中的可变错误

标签 java variables menu case

我想创建一个菜单程序,具有不同的选项:

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!");
 }
}

最佳答案

您应该将 full_name 放在循环之外,因为当前它位于本地范围内,无法从其他 case 语句访问。

关于java - 菜单程序中的可变错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33179468/

相关文章:

events - 来自 native 黑莓应用程序的黑莓菜单

java - 如何在 Java Sound API 中重新启动播放音频?

flutter - 如何将 SVG 图标放入 flutter ?

java - .equals() 的问题

objective-c - Objective C 属性变量和非属性变量的存储

c - C 中的变量作用域

java - 变量未初始化 - 我必须设置一个变量,而不是仅仅在 if 语句中添加它吗?

Eclipse IDE 菜单窗口剪掉按钮

java - 仅在 Spark 中可见的 Shapeless 中的 NoSuchMethodError

java - 自实例化机制/概念在 Java 中如何工作?