Java 使用while循环声明不可能的输出
这就是我的问题。我必须这样写,如果答案是Volume=0,那么程序必须结束。我必须使用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
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