无法停止读取Java中的输入

时间:2019-06-18 03:18:36

标签: java java.util.scanner inputstream bufferedreader

有人herehere问了这个问题,但对我都不起作用。那些包含在循环中的var result = employees.Join(salaries,e=>e.Eid,s=>s.Eid,(e,s)=> new {Name=e.EName,Salary=s.Salary}) .OrderByDescending(x=>x.Salary).Skip(4).First(); ;我没有。 以下代码检查Armstrong号码:

br.readLine() or scn.nextInt()

我尝试过的事情:
1. ^ Z,^ C(杀死程序)
2.使用readLine(),nextInt(),next()等。无济于事
3.使用在线GDB编译器-结果相同。

这是输出的外观: Does not stop...!

openjdk-8

2 个答案:

答案 0 :(得分:2)

您有一个无限循环:

while(val > 0){
    dig = val % 10;
    sum += Math.pow(dig, len); //Math class comes under java.lang
}

您应该更改val的值以退出循环,可能在每次迭代时将其除以十:

while(val > 0){
    dig = val % 10;
    val /= 10;
    sum += Math.pow(dig, len); //Math class comes under java.lang
}

答案 1 :(得分:2)

您的代码中存在无限循环:

while(val>0)
{
   //problem is here, val is not being changed so you are in an infinite loop
   dig=val%10;
   sum += Math.pow(dig,len); //Math class comes under java.lang
}