我是编程的新手,我正在制作一个简单的缺席程序,但是如果有人输入的值既不是A缺席,也不是T参加。这是代码:
package loops;
import java.util.Scanner;
public class Students_Absence {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter T for the attended student and A for the absent");
System.out.print("Student1:");
char student1 = input.next().charAt(0);
if (student1 =='T' || student1 == 'A'){
System.out.println();
} else {
System.out.println("The sympol you entered is incorrect, please use either T or A");
char student1 = input.next().charAt(0);
}
input.close();
}
}
我希望用户再次输入值,如果他错过了点击或其他东西,而不是重新启动整个程序。但是当我尝试时,我得到(重复的局部变量)错误。
谢谢!
答案 0 :(得分:3)
您无需重新声明该变量,只需重新分配该变量(在标记的行中):
student1 = input.next().charAt(0);
无论如何,您应该将其实现为循环,因为用户可能会再次输入错误的值...
答案 1 :(得分:0)
您似乎在{if}语句之前两次声明student1
,在else语句中再次声明另一次。考虑在else块中重用student1
变量。
else {
System.out.println("The sympol you entered is incorrect, please use either T or A");
student1 = input.next().charAt(0);
}
答案 2 :(得分:0)
您不必在char
区块中再次使用else
类型:
System.out.println("The sympol you entered is incorrect, please use either T or A");
student1 = input.next().charAt(0);
错误的发生是因为您尝试创建两次相同的变量(当您在创建新变量的变量名称之前使用char
时)并且您只需要再次确定其值(使用变量的名称但没有关键字char
),不要重新创建它。