我是java编程语言的新手。我一直在用while
s练习String
循环语句,我似乎无法正确使用此代码。我一直在收到错误:
变量选择可能尚未初始化
import java.util.Scanner;
public class Test {
public static void main(String args []) {
Scanner sc=new Scanner(System.in);
int a, b,c, diff, prod, q, choice;
String name;
String choose;
System.out.print("Enter Name Please: \t");
name = sc.next();
System.out.println("WELCOME " + name);
System.out.println("");
while (choose == "Y");
{
System.out.println("1. Addition \t2. Subtraction \t3. Multiplication \t4. Division");
System.out.println("Please Choose a number: \t");
choice = sc.nextInt();
switch (choice)
{
case 1:
System.out.println("Thank You "+name+", you have chosen ADDITION");
System.out.print("\nPlease Enter the first number: \t");
a = sc.nextInt();
System.out.print("\nPlease Enter the Second number: \t");
b = sc.nextInt();
c = a + b;
System.out.println("\nYou have chosen "+a+ " as your first number, we will add it to "+b+" your second number.");
System.out.println("\nThe answer is "+c);
System.out.println("\nWould you like to choose again? Y/N: \t");
choose = sc.next();
break;
答案 0 :(得分:2)
在将变量设置为初始值之前,请使用变量choose
。在choose
循环中使用{/ 1}}之前,您不会为其分配while
任何值。
在while
循环之前添加此语句:
choose = sc.next();
当然,您需要为最终用户提供适当的消息。
此外,您的比较不正确 - 使用choose.equals("Y")
或choose.equalsIgnoreCase("Y")
,因为您don't compare objects with ==
。
[编辑]:回顾一下你的代码,你的while
循环无论如何都会被破坏。从结尾处删除分号。这样,它会在你期望的时候进入循环。
答案 1 :(得分:1)
这是一个内置于编译器中的安全网,它抱怨在您的while语句中使用String选项之前可能尚未声明它。将其声明为""而且你会很高兴。
String choose = "";
希望这有帮助!欢迎来到Java!
答案 2 :(得分:0)
您没有为变量choose
分配任何值。
答案 3 :(得分:0)
将String choose;
更改为String choose = "";
这将初始化字符串选择。
答案 4 :(得分:0)
变量选择未初始化为某个值,只是被声明。也许你想要 String choose =“Y”; ?输入名称后,您可能希望使用扫描仪进行其他用户输入吗?
答案 5 :(得分:0)
您需要初始化选择,即在声明时为其指定值。也许你可以这样做 - String choose = "Y"
。正如其他人所提到的,使用equalsIgnoreCase("Y")
会更好。