如何在Java factorial中输入负数时创建错误消息

如何在Java factorial中输入负数时创建错误消息,java,for-loop,if-statement,factorial,Java,For Loop,If Statement,Factorial,我需要修改此代码,以便在输入负数时显示错误消息。我知道,要不然我就得把这句话插进去,我才能知道在哪里 公共静态void numberFactorial(){ public static void numberFactorial() { System.out.println("Option 2 selected, enter a number: "); int number = sc.nextInt(); // here you can check for neg

我需要修改此代码,以便在输入负数时显示错误消息。我知道,要不然我就得把这句话插进去,我才能知道在哪里

公共静态void numberFactorial(){
public static void numberFactorial() {  

    System.out.println("Option 2 selected, enter a number: "); 
    int number = sc.nextInt();

    // here you can check for negative number
    if(number >= 0){
         System.out.println("The factorial is: " + number + " ");  


        for (int i = 1; i <= number; i++) 
       {
            factorial *= i;


            if ((number - 1) > 0)   
            {
                System.out.print("x" + (number - i) + " ");

            }

            System.out.println("=" + factorial); 


        }
    }else{
      System.out.println("Negative number is not allowed, entered number is: " + number + " ");
    }

}
System.out.println(“选择选项2,输入一个数字:”); int number=sc.nextInt(); //在这里你可以检查负数 如果(数字>=0){ System.out.println(“阶乘是:“+number+”); 对于(int i=1;i 0) { 系统输出打印(“x”+(数字-i)+”); } System.out.println(“=”+阶乘); } }否则{ System.out.println(“不允许负数,输入的数字为:“+number+”); } }
我想您需要做的就是检查输入是否错误,以引发异常

public static void numberFactorial() {  
    System.out.println("Option 2 selected, enter a number: "); 
    int number = sc.nextInt(); 
    if(number < 0){
         throw new IllegalArgumentException()
    }
    // ... rest of the code
}
公共静态void numberFactorial(){
System.out.println(“选择选项2,输入一个数字:”);
int number=sc.nextInt();
如果(数字<0){
抛出新的IllegalArgumentException()
}
//…代码的其余部分
}

这不是最好的方法,但是

public static void numberFactorial() { 

System.out.println("Option 2 selected, enter a number: ");
boolean isNegative =true;
int number;

while (isNegative) {

number = sc.nextInt(); 
if(number < 0 ){
 System.out.println("Negative Number Detected, please enter your number again");
}else {
 break; 
}



System.out.println("The factorial is: " + number + " ");  


for (int i = 1; i <= number; i++) 


{
        factorial *= i;


        if ((number - 1) > 0)   
        {
            System.out.print("x" + (number - i) + " ");

        }

        System.out.println("=" + factorial); 


    }
}
公共静态void numberFactorial(){
System.out.println(“选择选项2,输入一个数字:”);
布尔值为负=真;
整数;
while(是负数){
编号=sc.nextInt();
如果(数字<0){
System.out.println(“检测到负数,请重新输入您的号码”);
}否则{
打破
}
System.out.println(“阶乘是:“+number+”);
对于(int i=1;i 0)
{
系统输出打印(“x”+(数字-i)+”);
}
System.out.println(“=”+阶乘);
}
}

我建议您检查伪代码中的每个步骤。找出实现每个步骤的Java代码行。您应该能够找到代码中未实现的行。请用文字说明您的代码如何解决此问题。