2013-11-26 122 views
0

我看到了如何打破循环(使用标签和打破标签)..但我想打破第一个循环取决于第二个循环:如何打破for循环相对于其他for循环

例如:

public class HelloWorld { 

    static private int i; 
    public static void main(String[] args) { 
     int y = 20; 
     for (; y <= 30; y += 2) 
     { 
      System.out.printf("value of increamented y Value is %d\n", y); 
      increamentiValue(); 
     } 
    } 

    private static void increamentiValue() 
    { 
     i = 0; 
     for (; i <= 5; i += 2) { 
      System.out.printf("value of i is %d\n", i); 
     } 
    } 
} 

例如在这里,我想打破“Y”循环依赖于“我”循环迭代的次数..

为前:

我想为厕所打破“y”如果在“我”循环中的数字iteriation等于0,因为在我的程序“我”检查错误...在我的ysytem错误可能会发生任何“我”..如果两次我dosnt有错误(我== 0)我想打破“y”循环。

EX:
if
在y = 22,i == 0; (没有发生错误)
在y = 23,i == 0; (没有错误发生)

我不想继续到30.我想打破y循环。

+0

代码使用四个空格缩进,而不是'>'。 – 2013-11-26 13:54:09

+2

请花时间确保您的代码格式可读。这次我已经为你做了。 –

+0

请更改'int y = 20; for((); y <= 30 ...'为'for(int y = 20; j <= 30 ...')易于阅读和理解 – SJuan76

回答

3

Have increamenti_Value返回main用来终止循环的值。


另外,尽管在increamenti_Valuefor循环使用实例变量(i)是做一个非常可疑的事情。使用for循环也很奇怪,省略了初始化子句,但在上面的行上设置了初始条件。

+0

可以给我一个例子...因为我在java中的一个星期 – user2965711

+0

@ user2965711:恐怕我不能,因为我不清楚你的意思是什么*“我想打破”y“for循环如果在”我“循环中的数字iteriation是等于0“*因为你在函数中将'i'设置为'0',它总是循环三次(当'i == 0,'i == 2','i == 4',所有这些都是循环终止条件的“<= 5”)。 –

+0

在我的情况..“我”是一个错误检查...在我的系统错误可以下降(我= 1或2或3或4或5)有时错误不会下降..因此,如果2次错误不会下降我想要打破“y”循环 – user2965711

1

让incrementi_Value返回i的值并在y循环中检查该值。

incrementi_Value == 0?休息:继续;

变化私有静态无效incrementi_Value - >私有静态诠释incrementi_Value

然后将返回我;当你想要返回i的当前值。

+0

这是我的尝试..但我没有得到输出...如何返回“我的价值“ – user2965711

0

而不是increamenti_Value()void,使其返回boolean - 如果调用者要打破,否则为false:

private static boolean increamenti_Value() { 
    // return true if you want the caller to break 
} 

,而是调用它像你,这样称呼它:

if (increamenti_Value()) 
    break; 

请注意,调用者应该什么时候做某事的知识的调用方法似乎不是一个好设计。你可能想重新考虑你的逻辑。