gpt4 book ai didi

java - (Java) Switch 语句中的全局变量问题

转载 作者:行者123 更新时间:2023-12-01 10:11:04 27 4
gpt4 key购买 nike

我正在创建一个带有开关的简单菜单驱动程序(我之前已经做过)陈述。我已经声明了全局变量 cuser,它适用于第一个开关中的情况。但是,如果我在其他情况下使用它,它会认为 cuser尚未初始化。用另一个变量引用 cuser 也不起作用。看起来应该可以,但我就是不明白为什么不行。

    String cuser; //Current user of e-mail system
String recip; //Recipient of message

char choice; //User input

do
{
choice = menuScan.next().charAt(0);

do
{
switch(choice)
{
case 'I':
case 'i':
System.out.println("Username: ");
cuser = menuScan.next();
System.out.println("Logged in.");
break;

case 'S':
case 's':
System.out.println("Recipient: ");
recip = menuScan.next();

m = new Message(cuser,recip);
System.out.println("Enter message. Blank line to quit: ");
m.append(menuScan.nextLine());

ms.deliver(m);
break;

case 'R':
case 'r':
ms.printMessages(cuser);
break;

case 'O':
case 'o':
System.out.println("Logged out.");
break;

//No 'Q' case; serves no purpose other than termination

default:
System.out.println("Invalid selection.");
break;
}
}
while(choice != 'O' && choice != 'o');
}
while(choice != 'Q' && choice !='q');

最佳答案

String cuser; 更改为 String cuser = null; String cuser = "";

Java 编译器检测到 cuser 可能1在您第一次切换后尚未初始化。

1这可能是真的,也可能不是。编译器没有感知能力,它无法确定所有可能的代码路径。

关于java - (Java) Switch 语句中的全局变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36108925/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com