continue與break的區(qū)別,用法
Posted on 2007-04-14 10:11 停留的風(fēng) 閱讀(20270) 評(píng)論(4) 編輯 收藏 所屬分類: Java程序集合在一具循環(huán)體中,如果用break返回, 則不管其后面是否有滿足for中條件的情況,都不做for中的循環(huán)體,即不會(huì)做;
如果用continue返回,如果條件滿足執(zhí)行continue, 跳出下面語(yǔ)句的執(zhí)行,而返回到for 語(yǔ)句的開頭,再次判斷for中的條件,從而根據(jù)條件執(zhí)行其中的循環(huán)體內(nèi)容。
簡(jiǎn)單地說(shuō),比如這樣一個(gè)程序:
for(...) {
...
continue/break;
...
}
System.out.prinln("a");
continue表示立即去執(zhí)行“for(...)”這行代碼,break表示立即去執(zhí)行“System.out.prinln("a");”這行代碼。我隨手寫了一段程序,你看看可能能幫助你理解。
public class BreakTest {
public static void main(String args[]) {
System.out.println("循環(huán)沒有開始");
System.out.println("現(xiàn)在開始測(cè)試continue");
for (int i = 0; i < 3; i++) {
System.out.println("開始第" + i + "次for循環(huán)");
if (i == 1) {
continue;
}
System.out.println("看看continue后這里執(zhí)行了嗎?");
}
System.out.println("continue測(cè)試完畢\n***********************");
System.out.println("現(xiàn)在開始測(cè)試break");
for (int i = 0; i < 3; i++) {
System.out.println("開始第" + i + "次for循環(huán)");
if (i == 1){
break;
}
System.out.println("看看break后這里執(zhí)行了嗎?");
}
System.out.println("break測(cè)試完畢\n***********************");
}
}
1. break 與 continue 加標(biāo)簽用法
在Java語(yǔ)句里,唯一能放標(biāo)簽的地方是在循環(huán)語(yǔ)句前面。而且循環(huán)語(yǔ)句跟標(biāo)簽之間不能有任何東西。
label1:
outer-iteration {
inner-iteration {
//...
break; // 1
//...
continue; // 2
//...
continue label1; // 3
//...
break label1; // 4
}
}
案例1會(huì)中斷內(nèi)部循環(huán)。2會(huì)中斷內(nèi)部當(dāng)前循環(huán),直接跳入下一輪循環(huán)。案例3中斷內(nèi)部和外部循環(huán),跳到label1,從外部開頭重新開始循環(huán)。案例4跳到label1,且不在進(jìn)入循環(huán)。
下面舉例:
public class LabeledFor {
static Test monitor = new Test();
public static void main(String[] args) {
int i = 0;
outer: // Can't have statements here
for(; true ;) { // infinite loop
inner: // Can't have statements here
for(; i < 10; i++) {
System.out.println('i = ' + i);
if(i == 2) {
System.out.println('continue');
continue;
}
if(i == 3) {
System.out.println('break');
i++; // Otherwise i never
// gets incremented.
break;
}
if(i == 7) {
System.out.println('continue outer');
i++; // Otherwise i never
// gets incremented.
continue outer;
}
if(i == 8) {
System.out.println('break outer');
break outer;
}
for(int k = 0; k < 5; k++) {
if(k == 3) {
System.out.println('continue inner');
continue inner;
}
}
}
}
}
} ///:~
結(jié)果:
'i = 0',
'continue inner',
'i = 1',
'continue inner',
'i = 2',
'continue',
'i = 3',
'break',
'i = 4',
'continue inner',
'i = 5',
'continue inner',
'i = 6',
'continue inner',
'i = 7',
'continue outer',
'i = 8',
'break outer'
class TestBreak
{
static void Main(string[] args)
{
List<int> list = new List<int>();
for (int i = 0; i < 100; i++)
{
list.Add(i);
}
foreach (int i in list)
{
if (i == 2)
{
continue;//結(jié)束此次循環(huán),不再執(zhí)行席邁的代碼,繼續(xù)下一次循環(huán)
}
if (i ==10)
{
break;//退出整個(gè)循環(huán)
}
Console.WriteLine("該值為:" + i.ToString());
}
}
}






















