Помогите с использованием цикла while и оператора if - PullRequest
0 голосов
/ 10 июня 2011

Я пытаюсь написать программу, которая читает 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, попросить пользователя ввести другое число?

Ответы [ 3 ]

4 голосов
/ 10 июня 2011

Это не ответ на ваш вопрос, но вам нужно преобразовать хотя бы одно из этих чисел в двойное.Прямо сейчас вы просто будете делать целочисленное деление, то есть 5/3 = 1. Вы можете сделать это с двойным знаменателем = (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);
3 голосов
/ 10 июня 2011
int denominator = 0;
do {
    System.out.print("Please enter the second number: ");
    denominator = scanner.nextInt();
} while (denominator == 0);
1 голос
/ 10 июня 2011
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();
}
...