-2

我该如何做到这一点,当 Wholenumber2 = 0 时,它会显示不同的消息,然后如果 Wholenumber 是 < 或 > 但不是 = 0,它将显示另一条消息?我试图防止潜水0的基本错误。

package SumDifProPACKAGE;     // Assigns package code.
import java.util.Scanner;     // Program uses class Scanner.
public class SumDifProCLASS { // Public class.
    public static void main( String[] args ){
      // Displays Welcome, information on calculations & creators name.
        System.out.printf( "%s\n%s\n%s\n",
         "--Welcome to JAVA Calculator!--", " --Sum, Difference, Product--", "  --??--");
        // Creates a Scanner to obtain input from the command window.
       Scanner input = new Scanner( System.in );
        // Listed integers:
        int wholenumber1; // First whole number input.
        int wholenumber2; // Second whole number input.
        int sum;          // Sum of First & Second whole number input.
        int difference;   // Difference of First & Second whole number input.
        int product;      // Product of First & Second whole number input.
        int quotient;     // Quotient of First & Second whole number input.
        int remainder;    // Remainder of the Quotient.
        int zero = 0;
        // Requests input for First whole number.
        System.out.print( "Please enter first whole number..." );
        wholenumber1 = input.nextInt();
        // Requests input for Second whole number.
        System.out.print( "Please enter first whole number..." );
        wholenumber2 = input.nextInt();
        // Displays the sum of First & Second input.
        sum = wholenumber1 + wholenumber2;
        System.out.printf( "Sum        = %d\n", sum);
        // Displays the difference of First & Second input.
        difference = wholenumber1 - wholenumber2;
        System.out.printf( "Difference = %d\n", difference);
        // Displays the product of the First & Second input.
        product = wholenumber1 * wholenumber2;
        System.out.printf( "Product    = %d\n", product);
        // Displays the quotient without the remainder of the First & Second input.   
        quotient = wholenumber1 / wholenumber2;
        System.out.printf( "Quotient   = %d", quotient);
       // Displays the remainder, continuation of quotient.
        remainder = wholenumber1 % wholenumber2;
        System.out.printf( "r%d\n", remainder);
    }
4

7 回答 7

1

您可以使用try catch来处理(除以零)ArithmeticException或者您可以检查是否wholenumber2为零

if(wholenumber2==0){
    // handle the case
} else{
    // handle the else case
}

检查此链接以及它建议处理这种情况的多种方法

于 2013-09-17T05:33:16.133 回答
0

我该如何做到这一点,当 Wholenumber2 = 0 时,它会显示不同的消息,然后如果 Wholenumber 是 < 或 > 但不是 = 0,它将显示另一条消息?我试图防止潜水0的基本错误。

一个简单的如果检查你需要在这里。

if (wholenumber2  != 0) {
    // calculate   
}else{
  //show error message
}
于 2013-09-17T05:32:30.900 回答
0

整数除以零会给出ArithmeticException。因此您可以捕获它并显示您想要的消息。

try{
     quotient = wholenumber1 / wholenumber2;
     System.out.printf( "Quotient   = %d", quotient);
}catch(ArithmeticException ae){
     System.out.print( "Result is Undefined");
}
于 2013-09-17T05:33:12.387 回答
0

在请求输入时添加条件 ->

int wholenumber2 = 0
while (wholenumber2 < 1) {
    System.out.print( "Please enter second whole number..." );
    wholenumber2 = input.nextInt();
}
于 2013-09-17T05:34:40.717 回答
0

一种简单的方法是使用 if 语句。

// Displays the quotient without the remainder of the First & Second input.   
if(wholenumber2 != 0){
    quotient = wholenumber1 / wholenumber2;
    System.out.printf( "Quotient   = %d", quotient);
}
else{
     System.out.printf("Cannot divide by zero");
}

顺便说一句:作为对其他一些答案的评论,您应该避免使用异常来控制执行流程。

于 2013-09-17T05:35:54.547 回答
0
Long division_operation (Long a, Long b) throws Exception
{
    Long t = new Long (1);

    try
    {
        t = (a.longValue() / b.longValue());
    }
    catch (ArithmeticException e)
    {
        t = null;
    }
    finally
    {
        return t;
    }
}
于 2013-09-17T05:49:49.847 回答
0

考虑到您正在一次执行所有操作,我建议您在输入时立即检查 Wholenumber2 的值,即,

Scanner input = new Scanner(System.in);

int wholenumber2 = input.nextInt();

while(wholenumber2==0)
{
System.out.println( "Whole Number cannot be zero!!" ); 
System.out.print( "Please enter Second whole number..." );
wholenumber2 = input.nextInt();
}
于 2013-09-17T06:51:01.070 回答