所以,我需要访问我在最后一个if语句的if语句中指定的变量。我是Java初学者,感谢任何帮助:)
这是我的编译错误。
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The local variable a may not have been initialized
The local variable b may not have been initialized
The local variable c may not have been initialized
The local variable d may not have been initialized
The local variable e may not have been initialized
这是我的代码。我需要根据已经传递的迭代次数来分配某个变量,并在最后一次迭代后分配变量后访问这些变量。
public static void main(String[] args){
String a;
String b;
String c;
String d;
String e;
Scanner s = new Scanner(System.in);
for( int loop = 1; loop <= 6; loop++ ){
if(loop == 1){
System.out.println("Please input a grade.");
a = s.nextLine();
System.out.println("You said,"+a);
continue;
}
if(loop == 2){
System.out.println("Please input a grade.");;
b = s.nextLine();
System.out.println("You said,"+b);
continue;
}
if(loop == 3){
System.out.println("Please input a grade.");
c = s.nextLine();
System.out.println("You said," +c);
continue;
}
if(loop == 4){
System.out.println("Please input a grade.");
d = s.nextLine();
System.out.println("You said," +d);
continue;
}
if(loop == 5){
System.out.println("Please input a grade.");
e = s.nextLine();
System.out.println("You said," +e);
continue;
}
if(loop == 6){
System.out.println("Grade 1."+a);
System.out.println("Grade 1."+b);
System.out.println("Grade 1."+c);
System.out.println("Grade 1."+d);
System.out.println("Grade 1."+e);
}
}
}
答案 0 :(得分:3)
您正在声明然后尝试访问String。如果您要使用变量,则必须首先初始化它们。你通过这样做声明它们:
String a;
你还需要像这样初始化它们:
String a = "";
在尝试访问它们之前初始化它们,否则Java的编译器将不满意!
答案 1 :(得分:3)
实际上,在这种情况下正确的做法是删除循环和if语句。它们是多余的。如果你没有多次在其中运行任何操作,则不需要进行循环:
String a;
String b;
String c;
String d;
String e;
System.out.println("Please input a grade.");
a = s.nextLine();
System.out.println("You said,"+a);
System.out.println("Please input a grade.");;
b = s.nextLine();
System.out.println("You said,"+b);
System.out.println("Please input a grade.");
c = s.nextLine();
System.out.println("You said," +c);
System.out.println("Please input a grade.");
d = s.nextLine();
System.out.println("You said," +d);
System.out.println("Please input a grade.");
e = s.nextLine();
System.out.println("You said," +e);
System.out.println("Grade 1."+a);
System.out.println("Grade 1."+b);
System.out.println("Grade 1."+c);
System.out.println("Grade 1."+d);
System.out.println("Grade 1."+e);
这将为完全提供相同的控制流,但现在编译器可以看到所有变量都必须已初始化。
循环用于重复运行程序逻辑的某些部分,但差别很小。实际上,如果您使用的是数组而不是变量,那么有一个循环是有意义的:
String[] grades = new String[6];
for ( int loop = 0; loop < 6; loop++ ) {
System.out.println("Please input a grade.");
grades[loop] = s.nextLine();
System.out.println("You said," + grades[loop]);
}
for ( int loop = 0; loop < 6; loop++ ) {
System.out.println( "Grade " + ( loop + 1 ) + ". " + grades[loop] );
}
因此,我们不是一次写下所有这些行,而是只编写一次,改变取决于循环变量。这就是为什么做的循环。
答案 2 :(得分:2)
只需在创建字符串时执行此操作:
String a = "";
String b = "";
String c = "";
String d = "";
String e = "";