Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么';扫描器类不能识别其他数字吗?_Java_Java.util.scanner - Fatal编程技术网

Java 为什么';扫描器类不能识别其他数字吗?

Java 为什么';扫描器类不能识别其他数字吗?,java,java.util.scanner,Java,Java.util.scanner,预期产出: 最大的整数是9 序列中的负整数数为3 序列中最大的偶数整数是8 可被3整除的数之和是6 谢谢大家! 只调用一次console.nextInt(),因此只读取一个号码。如果要调用,需要循环调用控制台.hasNext()。因为您使用的是系统.in。例如: while(console.hasNextInt()){ number=console.nextInt(); //计算 } 您只能读取一次输入。我在代码中没有看到循环,所以number=console.nextInt()仅运行一次。你应

预期产出:

最大的整数是9 序列中的负整数数为3 序列中最大的偶数整数是8 可被3整除的数之和是6


谢谢大家!

只调用一次console.nextInt(),因此只读取一个号码。如果要调用,需要循环调用
控制台.hasNext()
。因为您使用的是
系统.in
。例如:

while(console.hasNextInt()){
number=console.nextInt();
//计算
}

您只能读取一次输入。我在代码中没有看到循环,所以
number=console.nextInt()仅运行一次。你应该做的是把它放在一个循环中,当你有了所有的数字时退出循环(你如何检查它可以通过多种方式完成),当你在循环中时,把你收到的任何输入放入一个数组或另一个数据结构中。收集完输入后,检查数据结构上的所有数字。


1-您必须首先从用户处接收数据,然后计算数据并生成输出。
您可以使用数组执行此操作,并在完成放置数据后,对其进行计算。
例如:
Output:
 2
-1
-5
-3
 9
 8
 0
The largest integer is 2
The number of negative integers in the sequence is 0
The largest even integer in the sequence is 2
The sum of numbers divisible by 3 is 0
Process finished with exit code 0
private static final int DATA_SIZE=5;
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
ArrayList数据=新的ArrayList();
//将数据放入数组
while(data.size()=数据大小){
data.add(scanner.nextInt());
}
//从数组计算数据。。。
}

2-当您调用一个字段(如nextInt()Scanner类)时,它只执行一次,然后将其放入循环中重复几次。。。 当然,我还有其他建议 例如,您可以使用
main
方法中可用的数组(当然要有知识)



首先向用户询问您拥有的数据量,然后获取数据并进行计算

或者……

如果代码只执行一次,则为该行。因此,扫描仪只接收第一个输入。使用while循环接收多个输入。

如果要同时键入所有数字,应设置一个端子号。当您输入所有号码时,应添加终端号码,以表明输入结束。
例如:

private static final int DATA_SIZE = 5;

  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    ArrayList<Integer> data = new ArrayList<>();
    // put data in array
    while (data.size() == DATA_SIZE){
      data.add(scanner.nextInt());
    }

    // calculate data from array ...
  }
publicstaticvoidmain(字符串[]args){
整数,计数=0,和=0;
int最大=0,largestEvenNumber=0;
扫描仪控制台=新扫描仪(System.in);
int endNumber=-1;//设置终端号
做{
number=console.nextInt();//读取用户输入的整数
如果(数>最大){//计算最大数的条件
最大=数量;
}
if(number<0){//计算序列中负整数个数的条件
计数=计数+1;
}
if(number%2==0){//计算序列中最大偶数整数的条件
if(最大偶数<个数){
最大偶数=个数;
}
}
if(number%3==0){//计算可被3整除的数之和的条件
总和+=数字;
}
}while(number!=endNumber);
System.out.println(“\n最大整数为”+最大整数);
System.out.println(“序列中负整数的数量为”+count);
System.out.println(“序列中最大的偶数为”+最大的偶数);
System.out.printf(“可被3整除的数字之和为%d”,总和);
}

输出正常。我一次复制了所有的数字,然后尝试执行。我不想输入每个数字。那你想如何输入数字呢?
private static final int DATA_SIZE = 5;

  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    ArrayList<Integer> data = new ArrayList<>();
    // put data in array
    while (data.size() == DATA_SIZE){
      data.add(scanner.nextInt());
    }

    // calculate data from array ...
  }
public static void main(String [] args){

        int number, count = 0, sum = 0;
        int Largest= 0, largestEvenNumber = 0;

        Scanner console = new Scanner(System.in);
        
        int endNumber = -1; //set the terminal number
        
        do {
            number = console.nextInt(); // read an integer entered by a user

            if (number > Largest) { // Condition for computing the largest number
                Largest = number;
            }

            if (number < 0) { // Condition for computing the number of negative integers in the sequence
                count = count + 1;
            }

            if (number % 2 == 0) { // Condition for computing the largest even integer in the sequence

                if (largestEvenNumber < number) {
                    largestEvenNumber = number;
                }
            }

            if (number % 3 == 0) { // Condition for computing the sum of numbers divisible by 3
                sum += number;
            }
        }while (number!=endNumber);

        System.out.println("\nThe largest integer is " + Largest);
        System.out.println("The number of negative integers in the sequence is " + count);
        System.out.println("The largest even integer in the sequence is " + largestEvenNumber);
        System.out.printf("The sum of numbers divisible by 3 is %d", sum);

    }