我正在尝试编写一个程序,该程序从用户读取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 );

}


如何更改它,使其成为while循环,使用if语句检查第二个数字,如果它为0,请用户输入其他数字?

最佳答案

这不是您问题的答案,但您需要将这些数字中的至少一个转换为双精度。现在,您只需要进行整数除法,即5/3 =1。您可以使用double num =(double)分母来实现。

其次,这是do while循环的好用法。一直要求数字,直到它不为0为止。您知道要在循环中的第一次迭代没有条件的情况下执行do 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);

10-08 01:29