c语言多重循环程序怎么解决,C语言中跳出多重循环

如何在C语言中跳出多重循环?

如何在C语言中跳出多重循环?——C足够强大,唯一限制你的就是思维 问题的提出:如何快速跳出多重循环,例如一个数组,如果要检查数组内有无相同的变量,如果有就置标志跳出。 #define MAX_SIZE 4 UINT i,j,nBits[MAX_SIZE]; BOOL bValid; bValid = FALSE; for(i = 0; i < MAX_SIZE; i++) { for(j = (i + 1); j < MAX_SIZE; j++) {    if(nBit[i] == nBit[j])    {     bVlid = TRUE;     break;    } }     ????;//How to break all the loops??,it's a problem } 具体的解决办法如下,当然有很多,这儿只是取典型的3种而已。 #define MAX_SIZE 4 UINT i,j,nBits[MAX_SIZE]; BOOL bValid; bValid = FALSE; for(i = 0; i < MAX_SIZE; i++) { for(j = (i + 1); j < MAX_SIZE; j++) {    if(nBit[i] == nBit[j])    {     bVlid = TRUE;     GOTO JUMP_HERE;    } } }     ... JUMP_HERE:     ... 但是很多人都不喜欢用GOTO,因为C语言教材里面写着,慎用,和指针一样这些都是双刃剑,练习梅超风的18节鞭子不误抽自己几下是练不成的。 #define MAX_SIZE 4 UINT i,j,nBits[MAX_SIZE]; BOOL bValid; bJumpFlag= FALSE; for(i = 0; i < MAX_SIZE; i++) { for(j = (i + 1); j < MAX_SIZE; j++) {    if(nBit[i] == nBit[j])    {     bVlid = TRUE;     break;    } }     if(bVlid   == TRUE)     break; } 这个办法是比较平实的招数,实用不华丽。但是如果循环更多一些,或者是判断跳出逻辑更复杂一些,看起来可能就有点不爽了。 #define MAX_SIZE 4 UINT i,j,nBits[MAX_SIZE]; BOOL bValid; bValid = FALSE; for(i = 0; i < MAX_SIZE; i++) { for(j = (i + 1); j < MAX_SIZE; j++) {    if(nBit[i] == nBit[j])    {     bVlid = TRUE;     i = MAX_SIZE;     break;    } } } 最简洁的方式,华丽,高效而且实用,眼前一亮吧?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值