如何让用户再次输入相同变量的值?

时间:2015-09-06 18:02:27

标签: java

我是编程的新手,我正在制作一个简单的缺席程序,但是如果有人输入的值既不是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();
    }
}

我希望用户再次输入值,如果他错过了点击或其他东西,而不是重新启动整个程序。但是当我尝试时,我得到(重复的局部变量)错误。

谢谢!

3 个答案:

答案 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),不要重新创建它。