概述
如何在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; } } } 最简洁的方式,华丽,高效而且实用,眼前一亮吧?
最后
以上就是爱笑帆布鞋为你收集整理的c语言多重循环程序怎么解决,C语言中跳出多重循环的全部内容,希望文章能够帮你解决c语言多重循环程序怎么解决,C语言中跳出多重循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复