我无法将整数放入范围循环中

时间:2013-11-20 01:03:51

标签: java while-loop

我一直在尝试编写一个计算1到10之间数字的阶乘的程序。我可以正确计算阶乘,但问题是,它计算阶乘,即使数字大于10或小于1没有再问过它。

import java.util.Scanner;

public class Factorial {


    public static void main (String[] args){

        Scanner input = new Scanner(System.in);

        int num ;
        int factorial = 1;


        do{
            System.out.println("Enter an integer(1-10)  :");
            num = input.nextInt();
        }while(num>10 && num<1);


        for (int x = 1 ; x <= num ; x++)
            factorial = factorial * x;




        System.out.println("Factorial of number is " + factorial);



    } 
} 

在将变量“num”声明为随机nubmer之后,我尝试使用while而不是do-while。但后来它给了我随机数的阶乘。这段代码有什么问题?

2 个答案:

答案 0 :(得分:4)

您的while循环条件不正确。它不能同时大于10且小于1.使用逻辑或运算符||来强制执行您的范围:

}while(num > 10 || num < 1);

答案 1 :(得分:0)

你的'while'条件不正确。试试: while(num> 10 || num&lt; 1);

否则,只要输入的数字大于10且小于1,它就会循环。