Java 用try-catch做while循环 publicstaticvoidmain(字符串[]args)引发IOException{ InputStreamReader isr=新的InputStreamReader(System.in); BufferedReader br=新的BufferedReader(isr); 布尔格式=假; int等级=0; 做{ 系统输出打印项次(“输入课程分数(0-100):”; 试一试{ 字符串输入=br.readLine(); 等级=整数.parseInt(输入); }捕获(NumberFormatException | IOE异常){ System.out.println(“错误编号格式!”); } }而(!格式); 如果(等级>100 | |等级100 | |等级100 | |等级100 | |等级100 | |等级

Java 用try-catch做while循环 publicstaticvoidmain(字符串[]args)引发IOException{ InputStreamReader isr=新的InputStreamReader(System.in); BufferedReader br=新的BufferedReader(isr); 布尔格式=假; int等级=0; 做{ 系统输出打印项次(“输入课程分数(0-100):”; 试一试{ 字符串输入=br.readLine(); 等级=整数.parseInt(输入); }捕获(NumberFormatException | IOE异常){ System.out.println(“错误编号格式!”); } }而(!格式); 如果(等级>100 | |等级100 | |等级100 | |等级100 | |等级100 | |等级,java,Java,我做错了什么?我正在努力实现这一目标 输入课程分数(0-100):qwerty 输入数据类型错误。 输入课程分数(0-100):-12 输入超出[0,100]范围 输入课程分数(0-100):24 你的成绩是24分 改变 到 do{ 试一试{ 字符串输入=br.readLine(); 等级=整数.parseInt(输入); format=true;//添加此行 } 捕获(…){…} 如果(等级>100 | |等级100 | |等级100 | |等级100 | |等级

我做错了什么?我正在努力实现这一目标

输入课程分数(0-100):qwerty
输入数据类型错误。
输入课程分数(0-100):-12
输入超出[0,100]范围
输入课程分数(0-100):24
你的成绩是24分

改变

do{
试一试{
字符串输入=br.readLine();
等级=整数.parseInt(输入);
format=true;//添加此行
}
捕获(…){…}
如果(等级>100 | |等级<100){
System.out.println(“请在(0-100)范围内输入”);
格式=假;
}
}而(!格式);
如果执行流达到
format=true,则表示用户的输入是正确的&将确保您中断输入循环。

更改

public static void main(String[] args) throws IOException {

    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);

    boolean format = false;
    int grades = 0;

    do {
        System.out.println("Enter course mark (0-100): ");

        try {
            String input = br.readLine();
            grades = Integer.parseInt(input);

        } catch (NumberFormatException | IOException e) {
            System.out.println("Error number format!");
        }

    } while (!format);

    if (grades > 100 || grades < 100) {
        System.out.println("Please enter within the range (0-100)");
    }

    System.out.println("Your grades is " + grades);

}

do{
试一试{
字符串输入=br.readLine();
等级=整数.parseInt(输入);
format=true;//添加此行
}
捕获(…){…}
如果(等级>100 | |等级<100){
System.out.println(“请在(0-100)范围内输入”);
格式=假;
}
}而(!格式);

如果执行流达到
format=true,则这意味着用户的输入是正确的&将确保您中断输入循环。

您无需使用do..while块。while块本身可以输出。您也可以像这样更改程序块

do {
    try {
        String input = br.readLine();
        grades = Integer.parseInt(input);
        format = true; // Add this line
    }
    catch(...) { ... } 
    if (grades > 100 || grades < 100) {
        System.out.println("Please enter within the range (0-100)");
        format = false;
    }

} while (!format);
publicstaticvoidmain(字符串[]args)引发IOException
{
int等级=0;
InputStreamReader isr=新的InputStreamReader(System.in);
BufferedReader br=新的BufferedReader(isr)
而((input=br.readLine())!=null)
{
尝试
{
等级=整数.parseInt(输入);
}
捕获(NumberFormatException | IOE异常)
{
System.out.println(“错误编号格式!”);
}
}
如果(等级>100 | |等级<100)
{
System.out.println(“请在(0-100)范围内输入”);
}
System.out.println(“你的成绩是”+成绩);
}

无需使用do..while块。while块本身可以输出。您也可以像这样更改程序块

do {
    try {
        String input = br.readLine();
        grades = Integer.parseInt(input);
        format = true; // Add this line
    }
    catch(...) { ... } 
    if (grades > 100 || grades < 100) {
        System.out.println("Please enter within the range (0-100)");
        format = false;
    }

} while (!format);
publicstaticvoidmain(字符串[]args)引发IOException
{
int等级=0;
InputStreamReader isr=新的InputStreamReader(System.in);
BufferedReader br=新的BufferedReader(isr)
而((input=br.readLine())!=null)
{
尝试
{
等级=整数.parseInt(输入);
}
捕获(NumberFormatException | IOE异常)
{
System.out.println(“错误编号格式!”);
}
}
如果(等级>100 | |等级<100)
{
System.out.println(“请在(0-100)范围内输入”);
}
System.out.println(“你的成绩是”+成绩);
}

Lol,你当前的解决方案有什么问题,需要帮助吗?欢迎无限循环…是的,它变成了无限循环哈哈,很抱歉我还是Java编程新手Lol,您当前的解决方案有什么问题需要帮助吗?欢迎无限循环…是的,它变成了无限循环哈哈,很抱歉,我还是Java编程新手谢谢!它现在可以工作了,但是如果我想检查另一个范围在0-100之间的东西,我应该把if语句放在哪里呢?我想出来了!谢谢你的帮助!我在do循环中添加了if语句,并添加了line format=false;谢谢它现在可以工作了,但是如果我想检查另一个范围在0-100之间的东西,我应该把if语句放在哪里呢?我想出来了!谢谢你的帮助!我在do循环中添加了if语句,并添加了line format=false;您好,谢谢您提供这段代码。但是我试着检查它是否是一个介于0-100之间的数字。在这种情况下,如果我确实使用了一个数字,比如10000,它将传递try-catch,但不传递范围位,它将只打印“请在范围(0-100)内输入”并终止我正在尝试循环的代码。您好,感谢您提供这段代码。但是我试着检查它是否是一个介于0-100之间的数字。在这种情况下,如果我确实使用了一个数字,比如10000,它将传递try-catch,但不传递范围位,它将只打印“请输入范围(0-100)”并终止我尝试循环的内容
public static void main(String[] args) throws IOException 
{
    int grades = 0;
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr)
while((input=br.readLine())!=null)
    {
      try 
          {
           grades = Integer.parseInt(input);
          }
      catch (NumberFormatException | IOException e) 
          {
           System.out.println("Error number format!");
          }
    }

    if (grades > 100 || grades < 100) 
       {
        System.out.println("Please enter within the range (0-100)");
       }

 System.out.println("Your grades is " + grades);

}