在java中构造,当变量为false时返回循环的开头

时间:2016-05-05 18:33:01

标签: java loops

java中是否有一个构造在括号中有一些代码,比如while循环,但是当一个变量设置为false时,程序会返回到构造的顶部吗?

所以,如果你有

var = true
    construct(var = true){
    var = aMethod()
    var = anotherMethod()
    var = aFinalMethod()
}

其中aMethod()anotherMethod()aFinalMethod()都是布尔方法,如果其中任何一个返回false,则循环立即返回到顶部,var设置为true,并且逃避的唯一方法是让所有这些方法都返回true。有没有一个构造可以做到这一点,或者如果没有,是否有办法用java中的构造实现它?

4 个答案:

答案 0 :(得分:3)

  

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

     

继续声明

     

continue语句跳过for的当前迭代,同时,   或者do-while循环。未标记的表格跳到最里面的末尾   循环体并评估控制它的布尔表达式   环。以下程序ContinueDemo逐步执行String,   计算字母出现的次数" p"。如果当前字符是   不是p,continue语句跳过循环的其余部分   继续下一个角色。如果它是" p",则程序递增   字母数。

class ContinueDemo {
     public static void main(String[] args) {

         String searchMe = "peter piper picked a " + "peck of pickled peppers";
         int max = searchMe.length();
         int numPs = 0;

         for (int i = 0; i < max; i++) {
             // interested only in p's
             if (searchMe.charAt(i) != 'p')
                 continue;

             // process p's
             numPs++;
         }
         System.out.println("Found " + numPs + " p's in the string.");
         } 
}
  

以下是该计划的输出:

     

在字符串中找到了9个。

答案 1 :(得分:1)

不,没有类似的东西,所以你需要自己创建它:

var = true;
while(var) {
    var = aMethod();
    if (!var)
        continue;
    var = anotherMethod();
    if (!var)
        continue;
    var = aFinalMethod();
    if (!var)
        continue;
    else
        break;
}

答案 2 :(得分:0)

看看https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html。这里有一些应该有用的代码:

boolean var = true, var1, var2, var3;
while (var) {
    // do some stuff here
    var1 = aMethod()
    var2 = anotherMethod()
    var3 = aFinalMethod()
    var = !(var1 && var2 && var3);
}

这将继续循环,直到您的某个方法将var设置为false

答案 3 :(得分:0)

我不太确定你需要什么,但这里是简单的循环,它将尝试执行所有三种方法,直到所有这些方法都返回true:

while (!(aMethod() && anotherMethod() && aFinalMethod())) ;

所以,如果至少有一个方法返回false,则整个表达式将被否定(!),而while将继续。

当所有方法都返回true时,将停止

另请注意,如果aMethod返回false,则anotherMethodaFinalMethod将无法执行