#C语言-分支与循环

目录

引:什么是语句?

一、分支语句

1.1 if语句

 1.1.2 代码块

 1.1.3 if与else的对应规则

 1.2 switch语句

二、循环语句

2.1.1 while语句

 2.1.2 while语句中的break与continue

 2.2.1 for语句

 2.2.2 for语句中的break与continue

 2.2.3 使用语句的注意

 2.2.4 一个坑

2.3.1 do while语句

 2.3.2 do while语句中的break与continue

 三、练习


       学习完C语言基础篇,该踏上下一步台阶了。

引:什么是语句?

C语言语句可分为五类:

        1.表达式语句

        2.函数调用语句

        3.控制语句

        4.符合语句

        5.空语句

       本篇就主要讲解为控制语句,其用于控制程序的执行流程,以实现程序的各种结构方式,由特定符号表示,共九种,分为以下三类:

(1)条件判断语句(分支语句):if语句、switch语句;

(2)循环执行语句:do while语句,while语句,for语句;

(3)转向语句:break语句,goto语句,continue语句,return语句。

       :这里的语句更趋向于结构,我们一般所说的语句是指由一个分号;分隔的就是一个语句。

一、分支语句

       分支语句在基础篇中就有所提及,它可以译为“要么...要么...”,下面咱们进一步学习。

1.1 if语句

       if语句是分支语句中的一种,它的基本语法结构如下,

代码1_1,if语句的结构:

①
if(表达式)
    语句;

②
if(表达式)
    语句;
else
    语句;

③
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else if(表达式3)
    语句3;
......
else
    语句n;

       if结构比较简单,直接翻译就是“如果表达式成立,即条件为真(非0),就执行下面的语句;如果表达式不成立,即条件为假(0),就执行else if 或者else 或者 跳出该分支语句”。

比如下列示例,代码1_2,输入成绩并判断是否合格:

#include<stdio.h>

int main()
{

    int score=0;
    scanf("%d",&score);
    
    if(score >= 0 && score < 60)
        printf("不合格\n");
    else if(score >= 60 && score <= 100)
        printf("合格\n");

    return 0;
}

说明:

       代码1_2就是使用的分支语句,如果分数小于60,那么打印“不合格”;如果分数大于等于60,那么打印“合格”。

       与此同时,在if语句中表达式判定为假时,即不满足if 的表达式,然后在其所对应的else if 或者 else 中就可以排除if 的表达式,则代码1_2可改为:

#include<stdio.h>

int main()
{
    int score=0;
    scanf("%d",&score);
    
    if(score >= 0 && score < 60)
        printf("不合格\n");
    else if(score <= 100)
        printf("合格\n");

    return 0;
}

 正如以上代码,当输入score值大于60小于等于100时,程序执行在判断if 的表达式为假(表示score值一定大于60)后,进入else if ,此时就不必再判断score值是否大于60了。

 补;

       C语言中,表示score大于0小于60不能用:0<score<60,该式不符合逻辑;

而是用:score>0 && score<60来表示,其中 && 为并且的意识,同样还有 || 符号表示或者。

 1.1.2 代码块

      如果条件成立,需要执行多条语句,应该使用代码块,即应将多条语句用大括号{ }括住。

下列代码1_3,重要的事说三遍:

#include<stdio.h>

int main()
{
    int score=0;
    scanf("%d",&score);
    
    if(score >= 0 && score < 60){
        printf("不合格\n");
        printf("不合格\n");
        printf("不合格\n");
    }
    else if(score <= 100){
        printf("合格\n");
        printf("合格\n");
        printf("合格\n");
    }

    return 0;
}

 说明:

(1)由大括号{ }引的部分即称为代码块,只要语法合理均可化为代码块;

(2)默认情况下,if 以及else、else if后只能有一条语句,否则会有编译问题;

(3)如果if 以及else、else if后有多条语句,则需要使用代码块;

 1.1.3 if与else的对应规则

见下列代码1_4:(试问程序输出什么?)

#include<stdio.h>

int main()
{
    int a=0;
    int b=2;

    if(1==a)
        if(1==b)
            printf("hello");
    else
        printf("world");

    return 0;
}

程序执行结果:

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值