C语言分支语句-总结笔记-创新互联

分支语句

C语言是结构化的编程语言。C语言对生活中的事情进行抽象,总结为顺序、判断、循环关系。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、科尔沁网站维护、网站推广。

概述:

判断(分支)语句:

  • if
  • switch

循环语句:

  • while
  • for
  • do while

go to

1.什么是语句

C语言的语句可以分为一下几类:

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句

本次介绍的是控制语句。

控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言有三种结构:顺序结构、选择结构、循环结构)

可以分为三类:

  • 条件判断语句(分支语句):if语句、switch语句;
  • 循环语句:do while语句、while语句、for语句;
  • 转向语句:break语句、goto语句、continue语句、return语句

下面我们将逐一介绍

2.分支语句(选择结构) 2.1 if语句

在你面前有两个选择或者多个选择时。example:周一、三、五选择吃火锅,二四六选择吃盖饭,周日随缘。那么这个例子就需要进行选择,在C语言中可以使用if语句实现。

//语法结构
//单个if
if (表达式)
    语句;

//if与else
if (表达式)
    语句;
else
    语句二;

//多个选择时,可以用else if
if (表达式)
    语句一;
else if (表达式)
    语句二;
else 
    语句三;
  • 对于单if语句,如果if语句后面的表达式成立,则执行if下面的代码。
  • 对于else if语句,如果 if 语句的表达式成立则执行 if 下面的代码,否则执行 else 后面的语句。
  • 对于多个选择。自上而下按顺序判断,如果有满足 if 或 else if 的表达式时,执行相应的语句。if 和 else if 语句没有满足条件的,则执行else的语句
  • else 或 else if 与最近的 if配套,不能只看缩进关系。每个判断后,语句如果包含多个(多行),应使用 { }代码块.

代码演示:

//one

#includeint main()
{int age = 0;
    scanf("%d", &age);
    if (age< 18)
    {printf("未成年人\n");
        printf("禁止吸烟\n");
    }
    return 0;
}
//two

#includeint main()
{int age = 0;
    scanf("%d",&age);
    if (age<18)
        printf("未成年");
    else
        printf("已成年");
    
	return 0;
}
//three

#includeint main()
{
    int age = 0;
    scanf("%d",&age);
    if (age< 18)
        printf("未成年");
    else if (age>=18 && age<=30)
        printf("青年");
     else if (age>30 && age<=50)
        printf("中年");
     else
         printf("老年");
    return 0;
}

以上年龄划分仅为演示代码。

总结:

  • 如果语言表达式为真,则语句执行。
  • C语言中用 0 表示假,用非 0 表示真。

如果条件成立,要执行多条语句,要使用代码块,上面代码 one 中就是使用了代码块。一对 { } 就是一个代码块。

#includeint main()
{if(表达式)
   {语句列表1;
   }
    else
   {语句列表2;
   }
    return 0;
}
2.1.1 悬空else

看以下代码:

#includeint main()
{
    int a = 0;
    int b = 2;
    if (a==1)
        if (b==1)
            printf("I am so happy today");
    else 
        printf("I am so sad today");
	return 0;
}

那么上面的代码输出是什么呢?

答案是没有输出。因为 else 是与最近的 if 配套的,不能只看缩进,else 与 (b==1) 这层 if 搭配。由于判断 a=1 的 if 条件已经不成立了,所以根本不会运行 表达式一后面的执行语句。

改正

//适当的使用 { } 可以是代码的逻辑更清晰
//要有良好的写代码的习惯和让人舒服的风格
#includeint main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
			printf("I am so happy today");
		else
			printf("I am so sad today");
	}
	return 0;
}
2.1.2 if风格对比
//代码1
if (condition)
{
	return x;
}
return y;

//代码2
if (condition)
{
	return x;
}
else 
{
	return y;
}

其实上面两个代码的作用是一样的,代码二逻辑更为清晰。像我一样的初学者,建议代码二。

//代码三
int main()
{
    int num = 1;
    if (5 == num)
    {
        printf("I am happy");
    }
	return 0;
}

if 的判断语句这样写的话,如果出现少些一个等号这样的错误,会直接报错导致程序运行不了,防止条件判断语句变为 赋值语句,程序能运行但是有 bug。

2.1.3小练习
//判断一个数是否为奇数,是的话就输出。
int main()
{
    int num = 0;
    scanf("%d",&num);
    if (num %2 == 1)
        printf("%d\n",num);
	return 0;
}
//打印0~100之间的奇数
//这里会用到循环,主要看if
int main()
{
	int main()
{
	int i = 0;
	while (i<= 100)
	{
		if (i % 2 == 1)
		{
			printf("%d\n",i);
		}
		i++;
	}

	return 0;
}
2.2 switch语句

switch语句也是分支语句的一种。常常用于多分支的结构。

比如:按照输入的数字输出对应的星期几,那么我们也可以用 7个 if 语句判断实现。但是代码冗杂,这是哦我们可以使用 switch 语句。

switch (整形表达式)
{语句项;
}

语句项是什么?

//语句项是一些case语句
case 整型常量表达式:
	语句;

通过代码来看一下:

#includeint main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
   {
        case 1:
            printf("星期一\n");
        case 2:
            printf("星期二\n");
        case 3:
            printf("星期三\n"); 
        case 4:
            printf("星期四\n");   
        case 5:
            printf("星期五\n");
        case 6:
            printf("星期六\n");
        case 7:
            printf("星期天\n");   
   }
    return 0;
}

那么结果是什么呢?

如果输入6,会发现输出 星期六 星期天。

why?

是因switch语句的执行顺序是判断成功自上而下一次执行。也就是说输入 6 的时候。case 6 成立输出星期六,但是没有终止,因此会输出星期天。

以上情况可以用break解决

#includeint main()
{
    int day = 0;
    switch(day)
   {
        case 1:
            printf("星期一\n");
            break;
        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输出“工作日”,输入6或7输出“休息日”。

代码:

int main()
{
    int day = 0;
    scanf("%d",&day);
    switch (day)
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("工作日");
            break;
        case 6:
        case 7:
            printf("休息日");
            break;
    }
    return ;
}

break语句 的实际效果是把语句列表划分为不同的分支部分。

2.2.x default子句

如果我们输入的条件与case都不一致怎么办?

答:使用default子句,当case子句的条件都不满足的时候,便会执行 default 子句。

#includeint main()
{
    int n = 1;
    int m = 2;
    switch (n)
   {
    case 1:
            m++;
    case 2:
            n++;
    case 3:
            switch (n)
           {//switch允许嵌套使用
             case 1:
                    n++;
             case 2:
                    m++;
                    n++;
                    break;
           }
    case 4:
            m++;
            break;
    default:
            break;
   }
    printf("m = %d, n = %d\n", m, n);
    return 0;
}
//输出
m = 5  n = 3

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

当前名称:C语言分支语句-总结笔记-创新互联
网址分享:https://www.cdcxhl.com/article40/ddihho.html

成都网站建设公司_创新互联,为您提供搜索引擎优化微信公众号网页设计公司网站排名做网站电子商务

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都seo排名网站优化