Java:如何在for循环中使用if和continue,仅当用户输入多个字符时才输出消息?[duplicate]

ddrv8njm  于 2023-02-28  发布在  Java
关注(0)|答案(2)|浏览(124)
    • 此问题在此处已有答案**:

How do you check if the user input is a single Char(3个答案)
2天前关闭。
我正在通过我的在线学校学习java,并且有一个练习使用for循环的学校项目。我正在使用Apache NetBeans编译和执行我的代码。
任务是创建一个程序,向用户询问字母评分五次,然后输出一个"谢谢"消息,以及一个if()continue;for循环中的语句,如果用户输入多个字符,则输出消息。
我不知道应该在if语句的圆括号里放些什么才能让程序顺利运行,上网查了一下,回头看了一下课程材料,都没有找到任何答案。
我的密码是

char studentGrade; 

for(int x=1; x<6; x++){
     System.out.println("Please enter your grade letter. \n");

     studentGrade=(char)System.in.read();

     if() continue; 
     System.out.println("Only one character is accepted. Please try again. \n");
}

我试过输入(studentGrade!="A"&&studentGrade!="B"),扩展&&以包含C、D和F,但这只返回了一个错误消息,说"!="是不可接受的。
我自己也想不出其他的解决办法,正如我所说,我也无法在其他地方找到解决办法。我感谢任何帮助!

pgx2nnw8

pgx2nnw81#

您尝试使用(studentGrade!=“A”&&studentGrade!=“B”)几乎是正确的,但由于您在这里使用的是char,因此必须使用'而不是“”,以便Java将其视为字符。
无论如何,如果你可以使用字符串,你总是可以尝试用途:

String studentGrade;
    //Method to insert data from the console
    Scanner sc = new Scanner(System.in);
    for (int x = 1; x < 6; x++) {
        System.out.println("Please enter your grade letter. \n");
        
        studentGrade =  sc.nextLine();
        //Continue only happens if the string has only one character
        if (studentGrade.length() != 1) {
            continue;
        }
        System.out.println("Only one character is accepted. Please try again. \n");
    }

我不知道你的最终目的,但它会是这样的东西

zpjtge22

zpjtge222#

我不会使用那么长的if/else语句。它们很快就会变得复杂和不可读。我不知道你的最终目标是什么,但你可能想看看switch case。
这个解决方案应该给予你一个如何工作的例子。

Scanner scanner = new Scanner(System.in);

    for (int x = 0; x < 5; x++) {
        System.out.println("Please enter your grade letter. \n");
        String grade = scanner.nextLine();

        if (grade.length() != 1) {
            System.out.println("Please enter only one letter at a time!");
            continue;
        }

        // convert to uppercase to avoid mismatches
        grade = grade.toUpperCase();

        // Output based on the grade
        switch (grade) {
        case "A" -> System.out.println("Excellent!");
        case "B" -> System.out.println("Good");
        case "C" -> System.out.println("Average");
        case "D" -> System.out.println("Below Average");
        case "F" -> System.out.println("Failing");

        default -> System.out.println("Please enter a valid grade letter!");
        }

这里还有continue语句,但不是正好有一个字符。

相关问题