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 - Fatal编程技术网

尝试循环时在java中获取错误

尝试循环时在java中获取错误,java,Java,这是我收到的错误消息: Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor(Scanner.java:939) at java.base/java.util.Scanner.next(Scanner.java:1594) at java.base/java.util.Scanner.nextBoolean(Scanner.ja

这是我收到的错误消息:

Exception in thread "main" java.util.InputMismatchException
    at java.base/java.util.Scanner.throwFor(Scanner.java:939)
    at java.base/java.util.Scanner.next(Scanner.java:1594)
    at java.base/java.util.Scanner.nextBoolean(Scanner.java:1893)
    at calcSums.main(calcSums.java:24)

这是我的代码:

import java.util.Scanner;
公共级体育馆
{
公共静态void main(字符串[]args)
{
calcSum:{
Boolean再次=Boolean.valueOf(“y”);
扫描仪键盘=新扫描仪(System.in);
双数;
双和=0;
System.out.println(“输入正数”);
数字=键盘.nextDouble();
而(数量>0)
{
总和=总和+数字;
System.out.println(“输入另一个正数,输入0或负数结束”);
数字=键盘.nextDouble();
}
System.out.println(“总和为:”);
系统输出打印项数(总和);
System.out.println(“您想再找一笔钱吗?(y/n)”);
再次=keyboard.nextBoolean();
如果(同样,等于(“y”)){
破钙;}
}
}

}
这是因为不能将“y”作为布尔值输入。布尔值的字符串表示形式为“真”或“假”。
只需再次更改字符串中的变量,如下所示:

String again = new String();
... //Your other code
System.out.println("Would you like to find another sum? (y/n)");
again = keyboard.nextLine();
if (again.equalsIgnoreCase("y"))  {
    break calcSum; 
}
还可以考虑使用另一个while循环,而不是calcsum标签。

String again = new String("y");
while(again.equalsIgnoreCase("y"){
   ... //Your other code

    System.out.println("Would you like to find another sum? (y/n)");
    //again = keyboard.nextLine();
    again = new Scanner(System.in).nextLine();
}

你能解释一下你到底想做什么吗?在我的编程课上,我们在玩java,我们制作了一个程序,在用户输入0或负数之前,我们一直在寻找数字的总和。我想这样,当他们完成并得到答案时,它会问他们是否想再做一次求和计算。我之所以想这么做,是因为我不想为了解决任何问题而一遍又一遍地编译和运行同一个程序。我要试试这个,我一直在想用不同的方式实现中断的方法,我也在想和你一样的事情,我只是不知道怎么做,在此之前我只做过网页编程现在我正在使用学校提供的chromebook和在线java编译器,我要等到我回到实验室测试它我刚刚试过使用它,在它询问是或否后,它会暂停程序,而不是等待用户输入。nextLine()总是返回一个空字符串。我不知道为什么。我编辑了这篇文章,并用一个工作版本替换了最后一行。请试试这个