为什么我的程序不识别输入" q"打破循环?

时间:2017-05-09 13:04:56

标签: java while-loop

我正在编写一个主要方法,要求用户以锥体的半径和高度的形式输入,然后调用其他3种数学方法来确定锥体底部的区域,以及它的表面积和体积。

这个想法是你应该能够输入几组输入,并通过输入" q"表示你已经完成了。示例输入可以例如是" 10 5 6 8 q"。然后程序应该计算两次,有两组半径和高度,然后打破循环。相反,它进行3次计算,其中最后两次是相同的。此外,它无法在无限循环之后跳转到下一段代码。

outerLoop: while(true)       //Infinite loop
{   
if (scan.hasNextInt())       //If next input is an integer, read it
{
radie = scan.nextInt();
height = scan.nextInt();
}
else if (scan.next().equals('q'))
{                          //If it instead if "q", break the loop  
    break outerLoop;
}
     System.out.print("r = "+radius);
     System.out.println("h = "+height);
     System.out.println("Bottom area:      "+ area(radius));
     System.out.println("Surface area:   "+area(radie, height));
     System.out.println("Volume:              "+ volume(radius, height));

}

}

2 个答案:

答案 0 :(得分:1)

您正在将String(scan.next())与char'q'进行比较,它将永远不会相等。

答案 1 :(得分:0)

else if (scan.next().equals("q"))
{                          
    break outerLoop;
}

您正在比较字符串与字符。试试这个,它会起作用。