飞道的博客

C语言重要知识点总结【6】:C语言9种控制语句(详解)

618人阅读  评论(0)

大一下学期学习了C语言、暑假在家没事又把C语言复习了一遍。因此,趁热打铁,把所学内容写成笔记,以便以后复习,也希望能够帮助大家学好C语言。
以下内容如有错误,请大家在评论区指正,谢谢支持,共同进步。 go、go、go !!!

一、控制语句及其用处(表格)

控制语句,用于完成一定的控制功能。C语言 只有 9种控制语句,它们的形式是:

共9个 表现形式 用处
1 if()···或 if()···else··· 条件语句
2 for()··· 循环语句
3 while()··· 循环语句
4 do···while() 循环语句
5 continue 结束本次循环语句
6 break 中止执行 switch 或 循环语句
7 switch 多分支选择语句
8 return 从函数返回语句
9 goto 转向语句,在结构化的程序中基本不用goto语句

在上边的9种语句表示形式中:

() 表示括号中是一个“判别条件
··· 表示 内嵌的语句

二、控制语句详细表示(图片)

下面这张图片是《C程序设计》书附录中的一个片段,我个人感觉这张图片对9种控制语句概括的内容写得也很不错。

算是上边内容的一个补充吧:上边表格中的“判别条件”实际就是由表达式构成

三、9种控制语句(详解)

1. if()···else··· 语句

if(a>b)
    max=a;
else
    max=b;

x>y判别条件
max=a;max=b;是语句,这两个语句内嵌在if···else语句中,这个if···else语句的作用是:先判别条件a>b是否成立,如果a>b成立,就执行内嵌语句max=a;,否则就执行内嵌语句max=b;

选择结构中条件语句一共有3种形式:

①第一种:

if(表达式)  语句1 (没有else部分)

②第二种:

if(表达式1)
    语句1
else
    语句2    

③第三种:

if(表达式)  语句1
else if(表达式)  语句2
else if(表达式)  语句3
······
else  语句 n

2. break语句 和 continue语句

在介绍break语句 和 continue语句在程序中作用之前我们先看一下下面3个简单的程序,我会在最后用图片总结出 break语句 和 continue语句的区别:

题目:输出以下4X5矩阵

程序:…………………………………………

#include<stdio.h>
int main()
{
    int i,j,n=0;
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=5;j++)
        {
            printf("%d\t",i*j);
            n=n+1;
            if(n%5==0)
                printf("\n");
        }  
        printf("\n");
    }
    return 0;
}

运行结果:…………………………………………

程序:…………………………………………

break语句在程序中的应用:

#include<stdio.h>
int main()
{
    int i,j,n=0;
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=5;j++,n++)
        {
            if(n%5==0)
                printf("\n");
            if(i==3 && j==1) break;
                printf("%d\t",i*j);      
        }  
    }
    printf("\n");
    return 0;
}

运行结果:…………………………………………

continue语句在程序中的应用:

程序:…………………………………………

#include<stdio.h>
int main()
{
    int i,j,n=0;
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=5;j++,n++)
        {
            if(n%5==0)
                printf("\n");
            if(i==3 && j==1) continue;
                printf("%d\t",i*j);      
        }  
    }
    printf("\n");
    return 0;
}

运行结果:…………………………………………

break语句 和 continue语句对比

图中两个程序中的代码就红方框中不一样,其它代码完全相同,那么我们从中可以得到什么结论:

从上图的对比情况,可以很容易看出:

break 直接跳出 i=3(1<= j <=5)的 整个循环
continue 是只循环结束 j=1(i=3) 本次循环

continue 和 break语句在循环结构 for、while、do···while() 语句中用的都比较多。

但,continue语句一般只用于循环语句中;而break语句 不仅可以在循环语句中可以使用,在switch语句中也会经常使用到,在switch语句中的运用在后面对switch 语句百分制成绩中介绍。

3. switch 语句

switch语句的一般形式如下:

switch(表达式)
{
    case 常量表达式1 : 语句1
    case 常量表达式2 : 语句2
    ···
    case 常量表达式n : 语句n
    default :  语句n+1
}

前缀case 和 default 本身并不改变控制流程,它们之起标号作用,在执行上一个case后标志的语句后,继续顺序执行下一个case 前缀所标志的语句,除非上一个语句中最后用break语句是控制转出switch结构。

注意:
①根据程序要求 default 可要可不要
②case 后面的常量必须互不相同

下面我们看一个switch实例:

switch 语句(内含break语句)

题目:要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70 ~ 84分,C等为60 ~ 69,D等为60分以下。成绩等级由键盘输入。

switch语句:多分支选择语句

#include<stdio.h>
int main()
{
    char grade;
    printf("输入等级:");
    scanf("%c",&grade);
    printf("成绩范围:");    //输入大写字母:A B C D 
    switch(grade)
    {            
        case 'A':printf("85~100");break;
        case 'B':printf("70~84");break;
        case 'C':printf("60~69");break;
        case 'D':printf("<60\n");break;
        default: printf("enter data error!\n");break;   //输入数据不在范围内 
    }
    return 0;
}

执行结果…………………………

其它文章

1. c语言百分制成绩转换的2种方法(switch语句或if语句)
2. 判断闰年的3种方法(判断+范围输出)

4. while 语句

while语句的一般形式如下:

while(表达式)  语句

下面举一个简单的例子:

问题:求1+2+3+…+100

程序:………………………………

#include<stdio.h>
int main()
{
    int i=1,s=0;
    while(i<=100)
    {
        s=s+i;   //累加求和
        i++;
    }
    printf("s=%d\n",s,i);
    return 0;
}

执行结果…………………………

5. do()···while 语句

do()···while语句的一般形式:

do
    语句
while(表达式);

【注意】while(表达式)后面要以 ; 结尾

问题:求1+2+3+…+100

程序:……………………………………

#include<stdio.h>
int main()
{
    int i=1,s=0;
    do
    {
        s=s+i;  //累加求和
        i++;
    }
    while(i<=100);
    printf("s=%d\n",s,i);
    return 0;
}

执行结果…………………………………

6. for 语句

for语句的一般形式为:

for(表达式1;表达式2;表达式3) 
    语句

问题:求1+2+3+…+100

程序:………………………………

#include<stdio.h>
int main()
{
    int i,sum=0;                       
    for(i=1;i<=100;i++)
        sum+=i;    //累加求和
    printf("sum=%d\n",sum);
    return 0;
}

执行结果:………………………………

7. for、while、do···while() 语句对比

for语句与while语句对比

3种循环都可以用来处理同一问题,一般情况下他们可以相互代替。而for语句在有关循环的问题中是最常用的,for语句更为灵活,不仅可以用于 循环次数已确定 的情况,还可以用于循环次数不确定而只给出循环条件的情况,它完全可以代替while语句

for(表达式1;表达式2;表达式3) 
    语句
表达式1while(表达式2)
{
    语句
    表达式3}

while语句与do···while()语句对比

do···while()语句的执行过程:先执行一次循环体,然后再检查条件是否成立,若成立,在执行循环体。do···while()语句至少要执行一次循环体

while语句:先判断条件是否成立,若成立再执行循环体。

for、while、do···while() 三种循环语句可以处理很多复杂的问题,我们就不一一介绍了,如果你感觉对于上面的循环内容还没有看够,可以看一下下面几个关于循环的几个算法实例

1. 素数(判断,统计,范围输出)
2. 完数 (判断、范围输出)
3. 水仙花数(输出全部水仙花数)

8. goto 语句

goto:转向语句,在结构化的程序中基本不用goto语句,在这里就不作介绍了。

9. return 语句

return:从函数返回语句

几乎我们写的每一个程序一般都要使用return语句,作用就是从函数返回语句。一个函数可以有一个以上的 return语句 ,执行到那个return语句,哪一个return语句起作用。return后面的括号可以不要:

return z;return(z); 等价

return 0;
return z;
return(z);

函数的返回值是通过函数中的return语句获得的:

主函数main的返回值为 0 时表示程序正常退出
返回值为非零时,表示程序异常退出

最简单的程序(Hello world!及详解)

最后推荐文章:

以上内容如有错误,请大家在评论区指正,谢谢支持,共同进步。 加油!!!
如果你感觉我写的内容对你有一定的帮助,请给我点一个 【赞】作为您对我的鼓励, 谢谢!!


转载:https://blog.csdn.net/weixin_46022083/article/details/107993677
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场