while(true){//main loop
while(){}//inner loop
while(){}
}
这是树莓派中的主程序。我想在时间到期后在嵌套循环中执行程序时获得主循环。超时功能应该在另一个线程中。
最好的问候, 谢谢
答案 0 :(得分:0)
如果问题是要终止内部循环中的外部循环,则可以使用Java中的标记循环来完成。
public static void main(String[] args) {
int count =0;
parentLoop:
while(true) { // Outer while loop is labelled as parentLoop
while(true) {
count++;
if(count==100) {
break;
}
}
while(true) {
count++;
if(count>150) {
break parentLoop; // Breaking the parentLoop from innerloop
}
}
}
System.out.println("Iterated "+count+" times. ");
}
答案 1 :(得分:0)
考虑以下答案:How to break out of nested loops in Java?
您可以使用标记的循环突破嵌套循环。
class Scratch {
public static void main( String[] args ) {
outermark: while(true){//main loop
while(true){
if(Math.random() > 0.6) break outermark; else break;
}
System.out.println("outer loop"); // unreachable code
}
}
}
使用Java Thread
类可以实现相同效果的示例代码。
class Scratch {
public static void main( String[] args ) {
Thread thread = new Thread( () -> {
System.out.println( "thread running" );
while ( Math.random() < .6 ) {
System.out.println("thread is trying to break");
if ( Math.random() > .6 ) {
break;
}
System.out.println("thread failed to break");
}
System.out.println("thread completing");
} );
thread.run();
while ( true ) {
if ( !thread.isAlive() ) break;
}
System.out.println( "finished program" );
}
}