这个代码是哪里有什么错误吗

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
boolean y = true;//定义一个boolean类型y
//String result = "";
//输入对象
Scanner Scanner = new Scanner(System.in);
//算法 while循环给定条件 y == true
while (y == true) {
//输入一个0-100的整数
System.out.println("请输入一个0-100的整数:");
//score 小于0或大于100时
int score = Scanner.nextInt();//定义score 接收输入对象
if ((score < 0) || (score > 100)) {
//提示错误
System.out.println("输入数据范围不对或格式错误,请重新输入!");
}
else if (score >= 90 && score <= 100){
System.out.print("最终评价结果为:A");
break; //跳出当前循环
}
else if (score >= 80 && score < 90){
System.out.print("最终评价结果为:B");
break; //跳出当前循环
}
else if (score >= 60 && score < 80){
System.out.print("最终评价结果为:C");
break; //跳出当前循环
}
else if (score >= 0 && score < 60){
System.out.print("最终评价结果为:D");
break; //跳出当前循环
}
}
}
}

  • 问题1,变量命名不规范,应该是小驼峰
//输入对象, 变量名Scanner应该小写字母开头
Scanner Scanner = new Scanner(System.in);
  • 问题2,输入非整数时会抛出InputMismatchException异常
int score = 0;
try {
  score = scanner.nextInt();//定义score 接收输入对象
} catch (InputMismatchException e) {
  //提示错误
  System.out.println("输入数据格式不对,请重新输入!");
  continue;
}
  • 问题3,if条件判断过于繁琐
//score 小于0或大于100时
if ((score < 0) || (score > 100)) {
    //提示错误
    System.out.println("输入数据范围不对,请重新输入!");
}
else if (score >= 90){ // 这个分支已经隐含“score <= 100”这个条件了
    System.out.print("最终评价结果为:A");
    break; //跳出当前循环
}
else if (score >= 80){ // 这个分支已经隐含“score < 90”这个条件了
    System.out.print("最终评价结果为:B");
    break; //跳出当前循环
}

参考代码如下

import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        //算法 while循环给定条件
        while (true) {
            //输入对象
            Scanner scanner = new Scanner(System.in);
            //输入一个0-100的整数
            System.out.println("请输入一个0-100的整数:");
            int score = 0;
            try {
                score = scanner.nextInt();//定义score 接收输入对象
            } catch (InputMismatchException e) {
                //提示错误
                System.out.println("输入数据格式不对,请重新输入!");
                continue;
            }

            //score 小于0或大于100时
            if ((score < 0) || (score > 100)) {
                //提示错误
                System.out.println("输入数据范围不对,请重新输入!");
            }
            else if (score >= 90){
                System.out.print("最终评价结果为:A");
                break; //跳出当前循环
            }
            else if (score >= 80){
                System.out.print("最终评价结果为:B");
                break; //跳出当前循环
            }
            else if (score >= 60){
                System.out.print("最终评价结果为:C");
                break; //跳出当前循环
            }
            else{
                System.out.print("最终评价结果为:D");
                break; //跳出当前循环
            }
        }
    }
}