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

Java扫描器无限地接受输入

Java扫描器无限地接受输入,java,Java,我是编程和java新手,想创建自己的数组排序程序。我知道这不是一个好代码。但当我运行这个时,Scanner类将永远接受输入 这个检查变量导致了问题,但我不知道如何解决。 请一些人找出问题所在好吗?我找不到它。谢谢 1。公营苹果{ 2.公共静态void main(字符串参数[]){ 3.int[]num=新int[5]; 4.整数检查=0; 5.内部温度=0; 6.扫描仪输入=新扫描仪(System.in); 7.系统输出打印项次(“随机输入5个数字”); 8. 9.for(int i=0;i

我是编程和java新手,想创建自己的数组排序程序。我知道这不是一个好代码。但当我运行这个时,Scanner类将永远接受输入

这个检查变量导致了问题,但我不知道如何解决。 请一些人找出问题所在好吗?我找不到它。谢谢

1。公营苹果{
2.公共静态void main(字符串参数[]){
3.int[]num=新int[5];
4.整数检查=0;
5.内部温度=0;
6.扫描仪输入=新扫描仪(System.in);
7.系统输出打印项次(“随机输入5个数字”);
8.
9.for(int i=0;inum[j+1]){
16.检查++;
17.温度=数值[j];
18.num[j]=num[j+1];
19.数值[j+1]=温度;
20
21.}否则如果(j
将检查增量置于if/else if条件之外,这样,如果这两个条件都不成立,do/while循环仍将完成:

for (int j=0;j<num.length;j++) {
    if(j<num.length-1 && num[j]>num[j+1]) {
        //check++;
        temp=num[j];
        num[j]=num[j+1];
        num[j+1]=temp;
    
        
    }
    else if(j<num.length && num[j]<num[0]) {
        //check++;
        temp=num[0];
        num[0]=num[j];
        num[j]=num[0];
        
    }
    check++;
}

用于(int j=0;jth<代码>检查< /COD>变量仅在您完成了扫描仪之后才被引用。什么使您认为这两者是相关的?考虑使用缩进以这样的方式使代码更可读,而不是更少。我想发生的事情是,您在<代码>中做了,而<代码/>循环永远,因为<代码>检查
没有达到100。最好的方法是使用调试器逐步检查代码。@SilvioMayolo当我降低检查值时,程序工作正常。谢谢你的回答,但可以告诉我为什么do while循环影响输入循环。好吧,不是。当我运行你的代码时,它接受5个数字并执行它的操作排序并完成。您正在新行中输入每个数字?(在每个数字后按enter键)是的,我在每个数字后按enter键。您使用的是什么操作系统?在linux和其他unix操作系统中,当程序不接受数据时,您仍然可以继续将数据输入到standard In。如果您的应用程序无限期地卡在do/while循环中,情况就是这样。如果您在输入循环中放置
println
提示符,这一点很明显。更改正如DaWoD建议的那样,你可以在调试器中完成它。在大多数终端中,“我在等待用户输入”和“我在运行一个尚未完成的计算”之间没有视觉上的区别。你可以考虑在打印循环之后设置一个打印语句,比如“输入接收”,这样你就可以看出差异。