c语言中循环结构与条件结构搭配

循环结构:满足循环条件,执行循环体,循环;不满足循环条件退出循环;

条件结构:满足if条件,执行if语句;不满足if条件跳过if

可以看到,循环结构是多个if结构的叠加。

当循环结构中套if结构时,我们将if条件与循环结构条件写成与结构,形式上会更简洁。

例如:

我们想判断两个字符串是否相等。

1)常规思路:分两种情况,两个字符串的大小是否相同;相同的话,如果有字符不等,则跳出循环。

bool func(char*mm,char*nn)
{
     if(strlen(ch)==strlen(str))
     {
        int i = 0;
        for(;ch[i]!='\0';i++) //常规思路,一个字符一个字符的比较,有不等的退出,都相等继续循环
        {
            if(ch[i]!=str[i])
               return false;
        }
        return true;
    }else
        return false;
    
}

 2)循环条件和if条件合并

bool func(char*ch,char*str)
{
     if(strlen(ch)==strlen(str))
     {
        int i = 0;
        for(;ch[i]==str[i]&&ch[i]!='\0';i++) //循环结构的本质就是不满足条件退出,满足条件循环
        {
            
        }//不满足循环条件,退出循环:
            //ch[i]!=str[i]&&ch[i]!='\0';//两个字符串不等
           //ch[i]==str[i]&&ch[i]=='\0';//两个字符串相等
           //ch[i]!=str[i]&&ch[i]=='\0';//不存在这种情况

        if(ch[i]==str[i]) return true;
        return false;        
    }else
        return false;//存在两种情况,strlen(ch)>strlen(str)//可以合并到上面的情况中ch[i]!=str[i]&&ch[i]!='\0';
                                    //strlen(ch)<strlen(str)//也可以合并到上面的情况中ch[i]!=str[i]&&ch[i]=='\0';//即可能是这种情况
    
}

 3)两个字符串不等的情况合并

bool func(char*ch,char*str)
{
     if(strlen(ch)==strlen(str))
     {
        int i = 0;
        for(;ch[i]==str[i]&&ch[i]!='\0';i++) //循环结构的本质就是不满足条件退出,满足条件循环
        {
            
        }

        return(ch[i]==str[i]);     
    
    
}

 也可以写成如下形式

bool func(char*mm,char*nn)
{
    for(int j=0;mm[j]==nn[j]&&nn[j]!='\0';j++){}
 
    return (mm[j]=='\0'&&nn[j]=='\0');
    
}

总结:循环结构与条件结构判断条件的复用,充分运用了循环条件成立则不断循环,不成立则退出循环体的含义,

如上,我们表达的意思就是,如果两个字符串的每一个字符都相等,则不断循环。

猜你喜欢

转载自blog.csdn.net/modi000/article/details/114299300