1

我正在使用带有 do while 循环的 if 条件语句。我希望每次编译器运行程序时,它都应该在“IF”中打印语句,直到它小于 15打印一次?我哪里错了。如果有人解释流程,我会非常感激,因为我是初学者。请参阅下面的代码:

package loopexamples2;

public class DoWhileLoop {

public static void main(String[] args) {
    int n = 1;
    if(n<15)

        System.out.println("print value of n is equal to"+ n);

    do {
     System.out.println(n);
     n++;
    }
     while(n<10);           
    }
}

output--> 打印 n 的值等于 1 1 2 3 4 5 6 7 8 9

4

8 回答 8

3

您的 if 语句在您的 do while 循环之外。把它放在 do {} 块内

package loopexamples2;

public class DoWhileLoop {

public static void main(String[] args) {
    int n = 1;

    do {
     if(n<15) {
        System.out.println("print value of n is equal to"+ n);
     }
     System.out.println(n);
     n++;
    }
     while(n<10);           
    }
}
于 2013-03-02T02:50:14.677 回答
1

您正在寻找更接近此的东西:

while(n<15) {
    System.out.println("print value of n is equal to"+ n);
    n++
}

{和中的代码块}将不断运行,直到n达到大于或等于 15 的值。

使用您当前的代码,完整的打印语句仅输出一次,因为它不包含在您的while循环中。

于 2013-03-02T02:50:28.967 回答
0

你可以随时参考这个...它会对你更有帮助..

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/flow.html

于 2013-03-02T04:03:24.640 回答
0

我想这就是你想要的:

package loopexamples2;

public class DoWhileLoop {

    public static void main(String[] args) {
        int n = 1;        
        do {
           System.out.println("print value of n is equal to"+ n);
           n++;
        } while(n<10);           
    }
}

代码流程:

int n = 1;将 n 分配给 1

do {从这里开始重复大括号之间的代码,直到while.

System.out.println("print value of n is equal to"+ n);印刷print value of n is equal to1

n++;将 n 增加 1,因此 n = 2

} while(n<10);n < 10 吗?是的,所以重复do

System.out.println("print value of n is equal to"+ n);印刷print value of n is equal to2

n++;将 n 增加 1,因此 n = 3

} while(n<10);n < 10 吗?n = 3 所以是的,重复do

[ ...同样的事情重复直到...]

System.out.println("print value of n is equal to"+ n);印刷print value of n is equal to9

n++;将 n 增加 1,因此 n = 10

} while(n<10);n < 10 吗?n = 10 所以不,退出循环。

程序结束。

于 2013-03-02T02:50:29.360 回答
0

我解释了工作流程,因为您是初学者:

    int n = 1;

1 分配给n.

    if(n<15)
        System.out.println("print value of n is equal to"+ n);

程序检查n是否小于15。是这样,所以它执行动作:打印“打印n的值等于”+n。它只这样做一次。重复执行循环的不是 while 或 for 循环。

    do {
     System.out.println(n);
     n++;
    }
     while(n<10);           
    }

这里程序执行 { 和 } 之间的所有内容,直到 n=10。

你是说“它应该在“IF”中打印语句,直到它达到小于 15”

然后你需要一个类似的 do/while 循环:

 do {
     System.out.println("print value of n is equal to"+ n);
     n++
 }
 while (n<15);
于 2013-03-02T02:54:06.653 回答
0

我希望每次编译器运行程序时,它都应该在“IF”中打印语句,直到它小于 15

由于您n<10在循环中使用条件do while,因此循环不会继续进行n=9。所以达不到n=15

于 2013-03-02T02:54:09.013 回答
0

首先,您需要将if()语句放在 do while 循环中。否则程序只会看到 if 一次。

你要做的下一件事是在你的声明中:

do {
    System.out.println(n);
n++;
}
while(n<10);

你让它一直持续到n小于 10,你希望它小于 15。

我假设您也不想打印出 15 以便您可以更改

while(n < 10)

while(n <= 15)

所以你的代码看起来像这样:

package loopexamples2;

public class DoWhileLoop {

public static void main(String[] args) {
    int n = 1;

    do {
        if(n <= 15){
            System.out.println("The value of n is equal to " + n);
            n++;
    } while(n <= 15);
}
}

note<=的意思是“小于或等于”

于 2013-03-02T02:57:54.840 回答
0

IF 中的语句只传递一次。因为它不在任何循环内。

程序的流程是程序性的。所以执行是从上到下的。它首先通过 IF 块,执行它,进入下一行,找到循环直到满足 while 条件的 do-while 块。循环只在它的块上迭代,而不是在它之前的行上。

于 2013-03-02T02:52:15.900 回答