如何在java中突破嵌套循环中的if语句
在java上解决问题时,我发现很难突破for循环中的if语句,而这个for循环位于另一个if语句中。代码片段如下所示:如何在java中突破嵌套循环中的if语句,java,label,break,goto,nested-if,Java,Label,Break,Goto,Nested If,在java上解决问题时,我发现很难突破for循环中的if语句,而这个for循环位于另一个if语句中。代码片段如下所示: package experment; public class myclass_2{ public static void main(String[] args){ int t; int remaining; boolean is_undertaker_dead = false; Scanner s = new Scanner(System.in); Sy
package experment;
public class myclass_2{
public static void main(String[] args){
int t;
int remaining;
boolean is_undertaker_dead = false;
Scanner s = new Scanner(System.in);
System.out.println("hey");
t = s.nextInt();
for(int i=0; i<t; i++)
{
String S = Integer.toString(s.nextInt());
char c[] = S.toCharArray();
for(int j=0; j<c.length; j++)
{
if(c[j]=='2')
{
remaining = c.length-j;
for(int a=j; a<c.length; a++)
{
if(remaining<c.length)
{
remaining=0;
}
if(c[j+remaining]=='1')
{
is_undertaker_dead=true;
break;
}
remaining--;
}
}
}
if(is_undertaker_dead==true)
{
System.out.println("The Streak is broken!");
}
else
{
System.out.println("The streak");
}
}
}
包装实验;
公共类myclass_2{
公共静态void main(字符串[]args){
int t;
剩余整数;
布尔值为_dead=false;
扫描仪s=新的扫描仪(System.in);
System.out.println(“嘿”);
t=s.nextInt();
对于(inti=0;i首先,break
不会中断if语句,它会中断循环,在您的例子中,第二个用于
循环
在您的代码中,break
从内部for
循环中断开。要断开外部for循环,只需在外部循环的闭合括号之前,将以下条件置于下方即可
if (is_undertaker_dead)
break;
在第一个循环之前添加此行:
mainloop:
为了打破所有的循环,把这个叫做
break mainloop;
使用带标签的break版本:
outerLoop:
for(int j=0; j<c.length; j++)
{
if(c[j]=='2')
{
remaining = c.length-j;
for(int a=j; a<c.length; a++)
{
if(remaining<c.length)
{
remaining=0;
}
if(c[j+remaining]=='1')
{
is_undertaker_dead=true;
break outerLoop;
}
remaining--;
}
}
}
outerLoop:
对于(int j=0;j)“我尝试使用label方法”-你尝试了什么,它怎么不起作用?@sujatha做return会退出方法的其余部分,这可能不是他想要的。他可能只想在方法中突破那一段代码。@CDVAProgrammer然后他需要将他想要突破的部分放在一个单独的方法中,以便返回做他需要做的事。