2013-09-14 2 views
-3
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 и этот метод для ввода радиуса. Я продолжаю получать эту ошибку, и я не могу понять, почему.Использование цикла while для объявления невозможного вывода

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

Я понимаю, что означает ошибка, но я не могу понять, как это исправить. Пожалуйста, помогите NEW EDIT ... также в цикле while, который он должен прочитать, а (том == 0).

+3

Это сообщение об ошибке кристально ясно: вы пытаетесь сравнить логическое значение с 0, и это неправильно в Java. – raina77ow

+0

'потому что вы не можете сравнивать логическое с int. Это говорит об ошибке. volumeTwo никогда не переназначается нигде. – OldProgrammer

+1

Почему у вас даже есть 'volumeTwo'? Вы никогда не используете его. Возможно, вы хотели проверить это '(volume! = 0)'. Что-то вроде 'do {...} while (volume! = 0)' –

ответ

0

Вы пытаетесь сравнить boolean с 0, Хмм

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

Используйте

while(volumeTwo == true) 

или

while(volumeTwo) 
+0

Err. Как все иначе? или как это помогает? –

+0

@RohitJain компилируется. Большая разница для меня. –

+0

Это то же самое, что у меня есть, или я просто не уверен, что вы имели в виду. – user2755775

1

Используйте while(volumeTwo), если вы хотите продолжать, пока volumeTwo является true или while(!volumeTwo), если вы хотите, чтобы он продолжался, а volumeTwo - false.

+0

Я сделал это, но мой профессор также хочет, чтобы volumeTwo равнялся 0 в цикле, например, как я его написал. Я должен был сказать это вверху ** – user2755775

+0

Видимо, вы неправильно поняли своего профессора. Если переменная 'volumeTwo' не определена как числовая переменная, вы не сможете присвоить ей числовые значения, простые и простые. – raina77ow

+0

Итак, тогда 'int volumeTwo = 0' и' while (volumeTwo == 0) ' – redFIVE

-1

Я думаю, что следующее - это то, чего вы пытаетесь достичь. Пожалуйста, смотрите комментарии, помеченные < =======:

... 
    //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 
+1

вам действительно не нужно переписывать весь его код для простого ответа – redFIVE

+0

@redFIVE Done. Я позабочусь. Спасибо что подметил это. –

+0

Это не сработало, я получаю много несовместимых типов для ошибок messeges. – user2755775

0

Избавьтесь от volumeTwo вообще. Вы заботитесь, если volume равно 0, поэтому просто измените цикл while на while(volume!=0) и убедитесь, что том инициализирован чем-то, кроме 0.

Смежные вопросы