让用户输入整数,直到;X";是Java吗

让用户输入整数,直到;X";是Java吗,java,Java,基本上我要做的是读取用户输入(CUI),直到用户按下x。然后显示用户输入的数字的最小值、最大值和平均值。当我按下x键时,我不断收到输入不匹配异常。我尝试了很多不同的方法,这就是为什么我可能有一些不必要的代码在那里 import java.io.*; import java.util.Scanner; import java.lang.Number; public class taskTwo{ public static void main(String [] args) throws IOEx

基本上我要做的是读取用户输入(CUI),直到用户按下x。然后显示用户输入的数字的最小值、最大值和平均值。当我按下x键时,我不断收到输入不匹配异常。我尝试了很多不同的方法,这就是为什么我可能有一些不必要的代码在那里

 import java.io.*;
import java.util.Scanner;
import java.lang.Number;
public class taskTwo{
public static void main(String [] args) throws IOException {
    int min = 0;
    int max = 0;
    boolean isX =false;
    Scanner input = new Scanner (System.in);
    BufferedReader input2 = new BufferedReader (new InputStreamReader (System.in));
    String s = "x";
    s = input2.readLine();


    while(isX == false){
     if(s.equals ("x") || s.equals ("X")){
        isX = true;
    }

    int val = input.nextInt();

      if (val == 0) {
          break;
      }
      if (val < min) {
          min = val;
      }
      if (val > max) {
         max = val;
      }

      }

     if(isX == true){
      System.out.println("Min: " + min);
    System.out.println("Max: " + max);
      }




}
import java.io.*;
导入java.util.Scanner;
导入java.lang.Number;
公共课任务二{
公共静态void main(字符串[]args)引发IOException{
int min=0;
int max=0;
布尔值isX=false;
扫描仪输入=新扫描仪(System.in);
BufferedReader input2=新的BufferedReader(新的InputStreamReader(System.in));
字符串s=“x”;
s=input2.readLine();
while(isX==false){
如果(s.equals(“x”)| s.equals(“x”)){
isX=真;
}
int val=input.nextInt();
如果(val==0){
打破
}
如果(valmax){
max=val;
}
}
如果(isX==true){
System.out.println(“Min:+Min”);
System.out.println(“Max:+Max”);
}
}

}

在使用nextInt()的while循环中,显然它需要一个整数作为输入。因此,当您输入字符串x时,它将失败

因此,在循环中,将字符串作为输入,如果它不是X,是一个数字,则将其转换为int值并计算s=input2.readLine();在外部调用,而循环表示仅对第一行检查X,如果第一行不是X或输入0,则循环永远不会结束。

1。)不需要两个对象读取输入。只要输入
就足够了

2)你可以使用

input.hasNextInt();

检查输入是int还是字符串。比如:

while(true){
    if(input.hasNextInt()){
        //do something with the integer
    }else if(input.hasNext()){
        if(input.next().toLowerCase() == "x"){
            break;
        }
    }
}

除了输入
x
,您还输入了其他内容吗?另外,不要使用两个对象来读取标准输入<代码>扫描仪
已经具备您所需的一切。
while(true){
    if(input.hasNextInt()){
        //do something with the integer
    }else if(input.hasNext()){
        if(input.next().toLowerCase() == "x"){
            break;
        }
    }
}