0

ユーザーから 2 つの数字を読み取り、それらを割るプログラムを作成しようとしています。これが私がこれまでに持っているコードです:

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 );

}

if ステートメントを使用して 2 番目の数値をチェックし、それが 0 の場合はユーザーに別の数値を入力するように求めると、while ループになるように変更するにはどうすればよいですか?

4

3 に答える 3

4

これはあなたの質問に対する答えではありませんが、それらの数値の少なくとも1つをdoubleに変換する必要があります。今は整数除算、つまり5/3=1を実行しているだけです。これはdoublenum=(double)分母で実行できます。

第二に、これはdowhileループの良い使い方です。0になるまで数値を尋ね続けます。ループの最初の反復に条件がない場合は、do whileループが必要です(つまり、少なくとも1回はロジックを実行することがわかっています)。

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);
于 2011-06-10T00:34:36.857 に答える
3
int denominator = 0;
do {
    System.out.print("Please enter the second number: ");
    denominator = scanner.nextInt();
} while (denominator == 0);
于 2011-06-10T00:38:06.543 に答える
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();
}
于 2011-06-10T00:30:54.710 に答える