2011-06-10 69 views
0

我想寫一個程序,從用戶讀取2個數字並將它們分開。這裏是我的代碼至今:幫助使用while循環,如果語句

import java.util.Scanner; 

public class divideByZero { 

public static int quotient(int numerator, int denominator) 
{ 
    return numerator/denominator; 
} 

public static void main(String args[]) 
{ 
    Scanner scanner = new Scanner(System.in); 

    System.out.print("Please enter the first number: "); 

    int numerator = scanner.nextInt(); 

    System.out.print("Please enter the second number: "); 

    int denominator = scanner.nextInt(); 

    int result = quotient(numerator, denominator); 

    float result2 = (float)result; 

    System.out.printf("\n The first number %d divided by the second number " 
      + "%d = %f\n", numerator, denominator, result2); 

} 

我怎樣才能改變它,以便它是一個while循環,使用if語句來檢查第二個號碼,如果是0,要求用戶輸入不同的數字?

回答

4

這不是您的問題的答案,但您需要將這些數字中的至少一個轉換爲雙精度型。現在你只需要進行整數除法,即5/3 = 1.你可以用double num =(double)分母來做到這一點。

其次,這是do while while循環的一個很好的用法。繼續詢問這個數字,直到它不是0.你知道你想要一個do while while循環,當你通過循環的第一次迭代沒有條件時(也就是說你知道你至少要做一次邏輯)。

System.out.println("Please enter the second number: "); 
do { 
    int denominator = scanner.in(); 
    if (denominator == 0) System.out.println("Please enter a non-zero number: "); 
} while (denominator == 0); 
+1

+1「你知道你想要一個do while循環時,通過循環的第一次迭代中沒有的條件。」這是我聽到的最清楚的表達。 – 2011-06-10 00:42:27

+0

感謝您指出。我會在哪裏將它改爲雙倍?我試過了,但是不斷得到一個「類中的方法商不能應用於給定類型」的錯誤。 – JDB 2011-06-10 00:52:19

+0

這聽起來像你還沒有完全理解類型。我不想給你一個答案,那麼我該如何給出一個提示......恩,這裏是關於演員的一些信息:http://www.fluffycat.com/Java/Cas​​ting/ – Jeremy 2011-06-10 00:53:25

1
System.out.print("Please enter the second number: "); 
int denominator = scanner.nextInt(); 
while (denominator == 0) { 
    System.out.print("Please enter a non-zero number: "); 
    denominator = scanner.nextInt(); 
} 
3
int denominator = 0; 
do { 
    System.out.print("Please enter the second number: "); 
    denominator = scanner.nextInt(); 
} while (denominator == 0);