牛骨文教育服务平台(让学习变的简单)
博文笔记

[C/C++] 一次跳出两层for循环的几种方法

创建时间:2018-01-27 投稿人: 浏览次数:359

1. 单独封成一个函数

#include <stdio.h>
#include <string.h>

//判断字符串a与字符串b是否相等
int fun(char a[],char b[]){
    for(int i = 0;i < strlen(a);i++){
        for(int j = 0;j < strlen(b);j++){
            if(a[i] != b[j]){
                return 0;
            }
        }
    }
}

int main(){
    char a[] = "hello";
    char b[] = "world";
    printf("%d",fun(a,b));

}

2. 使用一个判断标记

#include <stdio.h>
#include <string.h>

int main(){
    char a[] = "hello";
    char b[] = "world";
    for(int i = 0;i < strlen(a);i++){
        int flag = 1;
        for(int j = 0;j < strlen(b);j++){
            if(a[i] != b[j]){
                flag = 0;
                break; //跳出第一层循环
            }
        }
        if(!flag){
            break;//跳出第二层循环
        }
    }

}

3. 使用goto

int main(){
    char a[] = "hello";
    char b[] = "world";
    for(int i = 0;i < strlen(a);i++){
        for(int j = 0;j < strlen(b);j++){
            if(a[i] != b[j]){
                goto start;
            }
        }
    }
    start:
    return 0;

}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。