【问题标题】:do-while loop using IF使用 IF 的 do-while 循环
【发布时间】:2013-02-16 16:27:30
【问题描述】:

我正在使用带有 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

【问题讨论】:

  • 题外话:编译器不运行程序。它编译它。
  • @m0skit0 - 你是绝对正确的。但是,如果您想对此感到痛苦,您可以争辩说编译器“运行”常量表达式,以便将它们的值放入“.class”文件中。 (当然,我绝不会提出这种愚蠢的解释 :-))
  • 感谢您的指正,我本可以更现实地说“编译器编译程序并由 JVM 运行它”

标签: java loops conditional-statements


【解决方案1】:

您可以随时参考... 对你会更有帮助..

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

【讨论】:

  • 毫无疑问,在 headfirst 之后是下一个'爆头'!
【解决方案2】:

首先,您需要将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);
}
}

注意&lt;= 的意思是“小于或等于”

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      我想这就是你想要的:

      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&lt;10); n 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&lt;10); n 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&lt;10); n

      程序结束。

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

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

              int n = 1;
          

          1 分配给n

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

          程序检查n是否小于15,是这样,所以执行动作:print "print value of n is equal to" + 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);
          

          【讨论】:

            【解决方案7】:

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

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

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

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

            【讨论】:

            • 谢谢,但我已经做了' While '循环标准显然是用 if 做一个强有力的例子。实际上,使用 while 是非常直接且更好的方法
            【解决方案8】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2016-03-27
              • 1970-01-01
              • 2021-07-18
              • 1970-01-01
              • 2022-01-26
              • 1970-01-01
              • 2023-02-15
              相关资源
              最近更新 更多