使用IF的do-while循环

时间:2013-03-02 02:46:30

标签: java loops conditional-statements

我正在使用带有do while循环的条件语句。我希望每当编译器运行程序时它应该在“IF”中打印语句,直到它达到少于15,发生的事情就是在do-while循环中作业进展顺利但是只在“IF”中的语句打印一次?我哪里错了。如果有人解释这个流程,我会非常感激,因为我是初学者。请参阅下面的代码:

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);           
    }
}

输出 - &GT; n的打印值等于1 1 2 3 4 五 6 7 8 9

8 个答案:

答案 0 :(得分: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);           
    }
}

答案 1 :(得分:1)

你正在寻找更接近这个的东西:

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

{}中的代码块会一直运行,直到n达到大于或等于15的值。

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

答案 2 :(得分: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&lt; 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&lt; 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&lt; 10? n = 10所以不,退出循环。

计划结束。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

    int n = 1;

1已分配给n

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

程序检查n是否小于15.情况就是如此,所以它执行动作:print“n的打印值等于”+ n。它只做了一次。重复执行循环不是一次或一次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);

答案 5 :(得分:0)

我希望每当编译器运行程序时它应该在“IF”中打印语句,直到它达到15以下

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

答案 6 :(得分: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);
}
}

注意<=表示“小于或等于”

答案 7 :(得分:0)

你可以随时推荐这个...... 这会对你有所帮助..

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