【问题标题】:Help with using a while loop and if statement帮助使用 while 循环和 if 语句
【发布时间】:2011-06-10 00:26:52
【问题描述】:

我正在尝试编写一个程序,从用户那里读取 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,请用户输入不同的数字?

【问题讨论】:

    标签: java if-statement while-loop divide-by-zero


    【解决方案1】:

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

    其次,这是对 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);
    

    【讨论】:

    • +1 表示“当您通过循环的第一次迭代没有条件时,您知道您想要一个 do while 循环。”这是我听过的最清楚的表达方式。
    • 感谢您指出这一点。我将在哪里将其更改为双倍?我试过了,但一直收到“类中的方法商不能应用于给定类型”的错误。
    • 听起来你还没有完全理解类型。我不想只给你一个答案,所以我该如何提示......嗯,这里有一些关于铸造的信息:fluffycat.com/Java/Casting
    • 会是这个样子吗?浮动结果2 =(浮动)结果;
    • 非常感谢您的帮助。我现在在实际计算方面遇到了麻烦。例如,当我输入 3 除以 4 时,我得到的结果是 0.000000。
    【解决方案2】:
    int denominator = 0;
    do {
        System.out.print("Please enter the second number: ");
        denominator = scanner.nextInt();
    } while (denominator == 0);
    

    【讨论】:

      【解决方案3】:
      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();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-09
        • 2016-01-12
        • 2012-06-18
        • 2015-05-19
        • 1970-01-01
        • 1970-01-01
        • 2017-08-20
        • 2023-04-09
        相关资源
        最近更新 更多