Java 为什么可以';我不能进入while循环吗? Labo21类 { 公共静态void main(字符串[]参数){ int n; int i; 双胞体; 系统输出打印(“正数:”); n=Clavier.lireInt();//键盘 如果(n

Java 为什么可以';我不能进入while循环吗? Labo21类 { 公共静态void main(字符串[]参数){ int n; int i; 双胞体; 系统输出打印(“正数:”); n=Clavier.lireInt();//键盘 如果(n,java,loops,while-loop,Java,Loops,While Loop,提供1或2作为Clavier.lireInt(),您将进入循环 例如: class Labo21 { public static void main(String [] arguments){ int n; int i; double somme; System.out.print("Positive number: "); n = Clavier.lireInt(); //keyboard

提供1或2作为
Clavier.lireInt()
,您将进入循环

例如:

class Labo21
{
    public static void main(String [] arguments){
        int n;
        int i;
        double somme;

        System.out.print("Positive number: ");
        n = Clavier.lireInt(); //keyboard

        if( n <= 0){
            System.out.print("ERROR");
        }else{
            i = 2;
            somme = 1;

            while (n <= i){
                somme = somme + 1.0 / i;
                i = i + 1;
            }
            System.out.print("Result: " + somme);
        }
    }
}
Labo21类{
公共静态void main(字符串[]参数){
int n;
int i;
双胞体;
系统输出打印(“正数:”);
n=1;//Clavier.lireInt();//键盘

if(n根据您的
if
条件,您的数字需要大于0。要进入
while
循环,您的数字需要小于或等于2,因为您将
i
设置为2。因此,您的选项是
1
2


话虽如此,一旦你进入
while
循环,你将永远无法退出(你已经创建了一个无限循环)因为
n
将始终小于
i
。在每次循环迭代中,您的
i
将递增1,并且
n
永远不会更改,因此它将永远不会大于
i
。您应该添加终止条件(以某种方式退出循环).

此代码的心态有问题。但幸运的是,它没有进入循环。如果是这样,它将不停地运行,您无法理解它


因为:在您的代码中,您说while循环的条件是i应该等于或大于n。我猜Clavier.lireInt();从用户处获取值。因此,如果用户输入1,则条件为while(1)您需要使用调试器并检查
n
变量是什么。它可能小于2。无论如何,这个问题与主题无关,因为您希望有人调试您的代码。您可以输入while循环。只需输入大于0且小于或等于2的值。此外,这将导致无限循环,因为
n
将始终小于
i
class Labo21 {
    public static void main(String[] arguments) {
        int n;
        int i;
        double somme;
        System.out.print("Positive number: ");
        n = 1; //Clavier.lireInt(); //keyboard
        if (n <= 0) {
            System.out.print("ERROR");
        } else {
            i = 2;
            somme = 1;
            while (n <= i) {
                System.out.println("in loop");
                somme = somme + 1.0 / i;
                i = i + 1;
            }
            System.out.print("Result: " + somme);
        }
    }
}
while(n>=i)