java - 为什么这个循环不确认前两个输入?

标签 java while-loop do-while

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

这个想法是,您应该能够输入多组输入,并通过输入“q”表示您已完成。示例输入可以是“10 5 6 8 7 5 q”。然后,程序应该使用两组半径和高度,将所有内容计算三次,然后中断循环。相反,它会忽略前两个输入并完美地执行其余四个输入。它基本上计算 n-1 组高度和半径,其中 n 是提供的组数。我非常感谢对此的帮助。

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;
    }


    do
    {   
        if (scan.hasNextInt())
        {
        radie = scan.nextInt();
        height = scan.nextInt();
        }


     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));

    }while (scan.next() != "\n");
}

最佳答案

您首先读入两个整数。但是,这两个整数都不会在您的程序中使用。因此,它们被扔掉了。

要么消除第二个循环,然后向上移动输出。或者,您在第二个循环之前复制输出。

关于java - 为什么这个循环不确认前两个输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43856283/

相关文章:

java - 无法将主类中的字符串值设置为setter

java - 异常处理 : Will parent class exception catch child exception too

java - 为什么我用 while( in.hasNext() ) 从键盘获取值

java - 大十进制 while 循环

java - 执行 while 循环 (Java)

java - 使用 while 循环重复一组指令 - Java

java - while 和 do while 循环

java - 字节码操作安全吗

java - 在 build.properties 中找不到 key.store 和 key.alias 属性

javascript - 使用 do...while 或 while 循环进行暴力破解