比如在不包含switch的代碼中出現(xiàn)break或者continue,那么break跳出循環(huán)體,而continue跳出本次循環(huán),而對于在循環(huán)中嵌套switch語句的代碼中,break僅跳出最內(nèi)層的塊,這個塊若是switch,就僅跳出switch,而continue即使出現(xiàn)在switch塊中,因?yàn)閏ontinue的作用范圍僅針對 for while 之類的循環(huán)語句,故不起作用,依舊跳出本次循環(huán),不注意的話也會認(rèn)為同樣是跳出switch語句塊了。
2015-11-05
continue只對直接包含它的循環(huán)體有效(也就是for,while, 而switch{}中的不算循環(huán)體);
break有效的是直接包含它的for,while,switch塊。
比如在不包含switch的代碼中出現(xiàn)break或者continue,那么break跳出循環(huán)體,而continue跳出本次循環(huán),而對于在循環(huán)中嵌套switch語句的代碼中,break僅跳出最內(nèi)層的塊,這個塊若是switch,就僅跳出switch,而continue即使出現(xiàn)在switch塊中,因?yàn)閏ontinue的作用范圍僅針對 for while 之類的循環(huán)語句,故不起作用,依舊跳出本次循環(huán),不注意的話也會認(rèn)為同樣是跳出switch語句塊了。
給你舉個例子吧:
結(jié)果為:sum 為 0+1+3=4
循環(huán)計(jì)算累加和,放在sum中
過程如下:i從0開始循環(huán),每次i++。當(dāng)i == 2的時候,執(zhí)行continue,跳過sum += i這句,繼續(xù)循環(huán),也就是說,2并沒有加到sum中去。循環(huán)繼續(xù),i變成3,執(zhí)行sum+=i。然后發(fā)現(xiàn)i == 4了,于是執(zhí)行break,跳出for循環(huán),也就是說,break之后,i的值固定在4了,循環(huán)語句不再被執(zhí)行了,sum += i這句也就不再被執(zhí)行了。
break是直接跳出循環(huán)體,而continue是跳過循環(huán)體中余下的語句(這里為sum += i;)繼續(xù)執(zhí)行循環(huán)。
除此之外,break還可以用在switch/case中,用來結(jié)束條件匹配,道理和在循環(huán)中一樣。