Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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 使用while循环声明不可能的输出_Java - Fatal编程技术网

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

Java 使用while循环声明不可能的输出,java,Java,这就是我的问题。我必须这样写,如果答案是Volume=0,那么程序必须结束。我必须使用while循环和该方法来输入半径。我一直在犯这个错误,我不知道为什么 import java.io.*; import java.util.*; public class volumeConeD {//class public static void main (String [] args) {//main Scanner keyBoard = new Scanner(S

这就是我的问题。我必须这样写,如果答案是Volume=0,那么程序必须结束。我必须使用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
我理解错误的含义,但我不知道如何修复它。请帮忙
新编辑…也必须在while循环中读取,while(Volume==0)。

您尝试将
布尔值
0
进行比较,嗯

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



如果你想继续使用
while(volumeTwo)
,而
volumeTwo
true
或者
while(!volumeTwo)
如果你想在
volumeTwo
false
时继续使用
,我想下面就是你想要达到的目的。请查看标有的注释,将
卷全部删除。您关心的是
volume
是否为0,因此只需将while循环更改为
while(volume!=0)
,并确保该卷已初始化为0以外的值。

此错误消息非常清楚:您试图将布尔值与0进行比较,而这在Java中是错误的。因为您无法将布尔值与int值进行比较。错误中会显示这一点。volumeTwo也从未被重新分配到任何地方。为什么您甚至有
volumeTwo
?你从来没有真正使用过它。也许您想检查
(卷!=0)
。类似于
do{…}while(volume!=0)
请详细说明您的程序的功能(特别是
VolumeTwo
)。很难猜到你想要发生什么。只要音量不等于0.Err,我就需要重复。这有什么不同?或者它有什么帮助?@RohitJain编译。对我来说有很大的不同。这和我的意思是一样的,或者我不确定你的意思。@user2755775我得到一个错误:
运算符==对于参数类型boolean是未定义的,int
这是Java,而不是C。在C中,false定义为0。但是在Java中,你不能直接比较int和boolean:它们是不同的类型。我已经这样做了,但是我的教授也希望volumeTwo在循环中等于0,就像我写的那样。我本应该说这个的**显然你误解了你的教授。如果
volumeTwo
变量未定义为数值变量,您将无法为其分配数值,简单明了。redFIVE,这是有效的,但现在调用我的方法时出现错误,变量半径可能尚未初始化。好的,初始化它。。。。谷歌是一个很好的工具来找出这些愚蠢的基本问题的答案。当我写类似的代码时,我总是引用我的旧程序,与那些我相信我已经初始化的程序相比,这就是为什么我感到困惑的原因,在这里你真的不需要为了一个简单的原因而重新发布他的所有代码answer@redFIVE完成。我会小心的。谢谢你指出这一点。这不起作用,我得到了许多不可比较的错误消息类型。
boolean volumeTwo = true;
while(volumeTwo == 0)
 while(volumeTwo == true)
while(volumeTwo)  
    ... 
    //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