Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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_Arrays_Conditional - Fatal编程技术网

Java 创建与扫描仪输入相对应的条件语句

Java 创建与扫描仪输入相对应的条件语句,java,arrays,conditional,Java,Arrays,Conditional,我正在为班级制定一个计划 我需要使用scanner类读取用户的输入。 然后我需要通过while循环将这些数据传递到数组列表。 在while循环中,我需要一个条件语句来检查输入的是0还是负数。 如果用户输入负数或0,循环结束,代码进入下一个进程 我目前面临的问题是: -未处理我的所有输入值 -我必须输入值0 3次才能退出循环 -0正在传递到我不想要的数组列表 以下是我目前的代码: import java.util.*; public class questionAvg3 { public sta

我正在为班级制定一个计划

我需要使用scanner类读取用户的输入。 然后我需要通过while循环将这些数据传递到数组列表。 在while循环中,我需要一个条件语句来检查输入的是0还是负数。
如果用户输入负数或0,循环结束,代码进入下一个进程

我目前面临的问题是:

-未处理我的所有输入值

-我必须输入值0 3次才能退出循环

-0正在传递到我不想要的数组列表

以下是我目前的代码:

import java.util.*; 
public class questionAvg3
{
public static void main(String[]args)
{

Scanner input_into = new Scanner(System.in);
ArrayList<Integer> collector = new ArrayList<Integer>();
System.out.println("Enter 0 or a negative number to end input");
System.out.println("Enter a positive integer to populate the arraylist");


    while ((input_into.nextInt() !=0) || (input_into.nextInt() < 0)){
    System.out.println("Type another int or exit");
        collector.add(input_into.nextInt());
    }

    int minValue = collector.get(0);
    int maxValue = collector.get(0); 
    //int avgValue = collector.get(0);
    //int total = 0;
    for(Integer i: collector){
        if( i < minValue) minValue = i;
        if( i > maxValue) maxValue = i;
    }       
    System.out.println("The max value int is: " + maxValue);
    System.out.println("The min value int is: " + minValue);

}
}
import java.util.*;
公开课问题3
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
ArrayList收集器=新的ArrayList();
System.out.println(“输入0或负数结束输入”);
System.out.println(“输入一个正整数以填充arraylist”);
while((将_输入到.nextInt()!=0)| |(将_输入到.nextInt()<0)){
System.out.println(“键入另一个int或exit”);
collector.add(在.nextInt()中输入_);
}
int minValue=collector.get(0);
int maxValue=collector.get(0);
//int avgValue=collector.get(0);
//int-total=0;
for(整数i:收集器){
如果(imaxValue)maxValue=i;
}       
System.out.println(“最大值int为:“+maxValue”);
System.out.println(“最小值int为:“+minValue”);
}
}

在循环中使用一个变量,并使用它来测试循环继续条件

  int variable=input.nextInt(); //get initial input

  while (variable<=0)
    {
        //get next input
        variable=input.nextInt();
    }//end while
int变量=input.nextInt()//获取初始输入

而(变量您的问题就在这里:

while ((input_into.nextInt() !=0) || (input_into.nextInt() < 0)){
System.out.println("Type another int or exit");
    collector.add(input_into.nextInt());
}

这会创建一个无限循环。你应该在while循环结束时更新你的
input
。我已经实现了这一点,但我现在陷入了打印“键入另一个int或exit”的无限循环中@AnthonyJ只需将
input=input\u into.nextInt();
添加到while循环结束处即可。@sᴜʀᴇsʜᴀᴛᴛᴀ 糟糕的是,我没有得到代表。:pPerfect,谢谢你。这两方面都帮助我更好地理解和解决了我的问题。@AnthonyJ我鼓励你将循环更改为我上面的内容,它更容易阅读,而且实际上性能更好,因为你每次迭代比初始循环设置少进行一次比较。
  int variable=input.nextInt(); //get initial input

  while (variable<=0)
    {
        //get next input
        variable=input.nextInt();
    }//end while
while ((input_into.nextInt() !=0) || (input_into.nextInt() < 0)){
System.out.println("Type another int or exit");
    collector.add(input_into.nextInt());
}
    int input = input_into.nextint();
    while (input > 0){
       System.out.println("Type another int or exit");
       collector.add(input);
       input = input_into.nextint();
    }