java中是否有一个构造在括号中有一些代码,比如while循环,但是当一个变量设置为false时,程序会返回到构造的顶部吗?
所以,如果你有
var = true
construct(var = true){
var = aMethod()
var = anotherMethod()
var = aFinalMethod()
}
其中aMethod()
,anotherMethod()
和aFinalMethod()
都是布尔方法,如果其中任何一个返回false,则循环立即返回到顶部,var设置为true,并且逃避的唯一方法是让所有这些方法都返回true。有没有一个构造可以做到这一点,或者如果没有,是否有办法用java中的构造实现它?
答案 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,则anotherMethod
和aFinalMethod
将无法执行