使用 while 循环声明不可能的输出


import java.io.*;
import java.util.*;
public class volumeConeD
{//class
    public static void main (String [] args)
    {//main
        Scanner keyBoard = new Scanner(System.in);//input for keyBoard
        //variables
        double volume;
        double radius;
        double hieght;
        double pie = 3.14;
        double yes = 1.0;
        boolean volumeTwo = true;

        while(volumeTwo == 0){
            System.out.print("Volume of a Cone... V=1/3(3.14)r^2(h)");
            System.out.println ();
            System.out.println ();
            radius = getRadius(radius); //call to method
            System.out.print("Enter a Height      ");
            hieght = keyBoard.nextDouble ();
            //math
            volume = .33333 * pie * radius * radius * hieght;
            System.out.printf ("Volume =       " + volume);
        }//end of while         
    }//end of main
    public static double getRadius (double radius)
    {
        Scanner keyBoard = new Scanner(System.in);
        System.out.print("Enter Radius Squared Number      "); 
        radius = keyBoard.nextDouble ();
        return radius;
    }
}//end of program

所以这是我的问题。我必须写这个,以便如果答案最终是 Volume = 0,程序必须结束。我必须使用 while 循环和该方法输入半径。我一直收到此错误,我不知道为什么。

               error
                       volumeConeD.java:25: error: incomparable types: boolean and int
while(volumeTwo == 0){
                ^
1 error.

我了解错误的含义,但无法弄清楚如何解决它。请帮忙新编辑...同样在 while 循环中它必须读取 while(Volume == 0)。

如果您希望它在volumeTwo true时继续,请使用while(volumeTwo),如果您希望它在false时继续volumeTwo,请使用while(!volumeTwo)

你试着把boolean0进行比较,嗯

boolean volumeTwo = true;
while(volumeTwo == 0)

 while(volumeTwo == true)

while(volumeTwo)  

完全摆脱volumeTwo。你关心volume是否为 0,所以只需将 while 循环更改为 while(volume!=0) 并确保卷初始化为 0 以外的值。

我认为以下是您要实现的目标。请参阅标有<======= 的评论:

    ... 
    //boolean volumeTwo = true; // <======= Manoj - COMMENT THIS LINE  
    double volumeTwo = 1.0; // <=========== Manoj - any non-zero for that matter
    ... 
    ... 
    while(volumeTwo != 0.0){
    ... 
              //math
      volume = .33333 * pie * radius * radius * hieght;
      System.out.printf ("Volume =       " + volume);
      volumeTwo = volume; // <=============== Manoj - update volumeTwo with calculated volume 
                          // <===============       - when volumeTwo becomes 0.0 loop quits 

最新更新