【编程之路(002)】分支语句(if,switch语句)(C语言实现)

目录

基本概念:

if语句

switch语句


基本概念:

C 语句可分为以下五类:
1. 表达式语句
2. 函数调用语句
3. 控制语句(今天要讲的)
4. 复合语句
5. 空语句
控制语句:
用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成, C
言有九种控制语句。分成以下三类:
1. 条件判断语句也叫分支语句: if语句、switch 语句
2. 循环执行语句: do while 语句、 while 语句、 for 语句;
3. 转向语句: break 语句、 goto 语句、 continue 语句、 return 语句。
在C语言中:0表示假,非0表示真。(这个概念很重要)

if语句

如果表达式的结果为真,则语句执行。
表达式就是if()内的式子。

if语句是有三种结构的:

1:

if(表达式)

   语句;
#include<stdio.h>
int main()
{
	int score = 90;
	if (score >= 80)
	{
		printf("优秀\n");
	}
    return 0;
}

这里要注意的是:if()后没有分号,可以这样理解它与下面的语句结合起来才可以算一个完整的语句;另外,下面的语句如果只有一条的话,那么可以不需要{};但是一旦你想让if执行多条语句时,请注意一定加{},否则它将只会执行下面的一条语句。

2:
if(表达式)
   语句1;
else
   语句2;
#include<stdio.h>
int main()
{
	int score = 90;
	if (score >= 60)
	{
		printf("及格\n");
	}
	else
	{
		printf("不及格\n");
	}
    return 0;
}

这里只有score大于等于60时才会打印及格,其他情况都是不及格。

3:
if(表达式1)
   语句1;
else if(表达式2)
   语句2;
……
else if(表达式n)
   语句n ;
else
   语句n+1;
#include<stdio.h>
int main()
{
	int score = 90;
	if (score >= 80)
	{
		printf("优秀\n");
	}
	else if(score>=60&&score<80)
	//为什么不是60<=score<=80呢?
	//编译器从左往右看的时候,60<=90为真,相当于1,而1肯定是小于80的
    //所以它既会打印优秀,也会打印良好。
	{
		printf("良好\n");
	}
	else
	{
		printf("不及格\n");
	}
	return 0;
}

switch语句

switch 语句也是一种分支语句。
常常用于多分支的情况。
比如:
输入 1 ,输出星期一
输入 2 ,输出星期二
输入 3 ,输出星期三
输入 4 ,输出星期四
输入 5 ,输出星期五
输入 6 ,输出星期六
输入 7 ,输出星期日
如果写成  if...else if ...else if 的形式太复杂,那我们就得有不一样的语法形式。
这就是 switch 语句。
switch ( 整型表达式 )
{
   
    case 整形常量表达式 :
        语句 ;
}
这里要注意的是整形常量表达式可以是整型,也可以是字符型,因为字符的存储是以ASCII值(整型)的形式存储,但决不能是浮点型
下面这个代码是输入几,将会打印星期几
#include <stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
   {
        case 1:
            printf("星期一\n");
            break;
            //break的作用是结束掉这个switch,
            //如果不加break,下面的语句会都被执行
            //除非碰到break,否则直到执行完最后一个语句,switch才算结束。
        case 2:
            printf("星期二\n");
            break;
        case 3:
            printf("星期三\n");
            break;    
        case 4:
            printf("星期四\n");
            break;    
        case 5:
            printf("星期五\n");
            break;
        case 6:
            printf("星期六\n");
            break;
        case 7:
            printf("星期天\n");    
            break;
   }
    return 0; }

下面这个代码是输入1-5直接任何一个数字,打印weekday;输入6或7,打印weekend

#include <stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
   {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("weekday\n");
            break;
        case 6:
        case 7:
            printf("weekend\n");
            break;
   }
    return 0; 
}

那么有人输入8,我们可以知道,switch语句是不会执行的,但是我们想要在发现这种情况,这就要说到default子句了。它与case子句一样,只不过,它所应对的是像输入8的那种情况。

default:
写在任何一个 case 标签可以出现的位置。
switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
所以,每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。
刚才的代码就可以完善一下了
#include <stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
   {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("weekday\n");
            break;
        case 6:
        case 7:
            printf("weekend\n");
            break;
        default:
            printf("输入错入\n");
            break;
   }
    return 0; 
}

第一篇正式博客,希望可以帮到你,有什么不对的地方也希望大家可以提出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值