c语言从0->1入门——选择语句

举报
秋名山码民 发表于 2022/05/15 23:34:13 2022/05/15
【摘要】 关于作者:2019NOIP退役成员,学习c语言已有多年经验,更懂得考试的题目,和初学者学习时所遇到的问题华为云享专家,以及CSDN的新星创作者,有写博客的一定能力 关于本栏目本栏目的宗旨是带你入门c语言,作者打算用题海+c语言的概念来完成本栏目,适用人群:面向广大的编程爱好者和大学生来进行创作学完本栏后你能达到的水平:计算机二级水平左右,入门c语言学习题目:主要来源于网络和c语言的入门算法...

关于作者:

2019NOIP退役成员,学习c语言已有多年经验,更懂得考试的题目,和初学者学习时所遇到的问题

华为云享专家,以及CSDN的新星创作者,有写博客的一定能力

关于本栏目

本栏目的宗旨是带你入门c语言,作者打算用题海+c语言的概念来完成本栏目,

适用人群:面向广大的编程爱好者和大学生来进行创作

学完本栏后你能达到的水平:计算机二级水平左右,入门c语言学习

题目:主要来源于网络和c语言的入门算法题目

写在前面的话(第六天)

记住我们的宗旨:努力去做,让一切交给时间来评判!

今天主要由俩个方面组成语句判断语句的几种格式,配套练习题有3个坚持下去,时间会给出答案!

语句的基本概念

什么是语句?

简单的来说,用一个;结尾的一行话,就是一条语句

语句的几种格式:

空语句:一行中只有分号 ;
复合语句:用大括号将多条语句组合起来叫复合语句

语句的嵌套:

语句的嵌套只存在复合语句中

int a;
{
	//进行嵌套
	a++;
	a+=2;
}
//a=3

判断语句

顾名思义判断一个条件是否成立,如果成立,返回为真,不成立返回为假

if

#include <stdio.h>

int main()
{
	int a;
	scanf("%d", &a);
	if (a > 1)
		printf("a大于1");
	return 0;
}

if…else…

条件成立执行if语句中的内容,否则执行else后面的内容

#include <stdio.h>

int main()
{
	int a;
	scanf("%d", &a);
	if (a >= 60)
		printf("及格");
	else
		printf("不及格");
	return 0;
}

if…else if…else

对比上面的也不难猜出,
如果…又如果…否则…

#include <stdio.h>

int main()
{
	int a;
	scanf_s("%d", &a);
	if (a >= 60 && a <= 70)
		printf("及格");
	else if (a > 70 && a <= 80)
		printf("良好");
	else if (a > 80)
		printf("优秀");
	else
		printf("不及格");
	return 0;
}

switch语句

试想一个问题,如果让我们输入一个数字,来判断是周几的话,怎么执行?

我们先用if语句来实现一下:

#include <stdio.h>
int main(){
    int a;
    printf("Input integer number:");
    scanf("%d",&a);
    if(a==1){
        printf("Monday\n");
    }else if(a==2){
        printf("Tuesday\n");
    }else if(a==3){
        printf("Wednesday\n");
    }else if(a==4){
        printf("Thursday\n");
    }else if(a==5){
        printf("Friday\n");
    }else if(a==6){
        printf("Saturday\n");
    }else if(a==7){
        printf("Sunday\n");
    }else{
        printf("error\n");
    }
    return 0;
}

对于这种情况,我们在实际开发中一般用switch语句来代替

#include <stdio.h>
int main(){
    int a;
    printf("Input integer number:");
    scanf("%d",&a);
    switch(a){
        case 1: printf("Monday\n"); break;
        case 2: printf("Tuesday\n"); break;
        case 3: printf("Wednesday\n"); break;
        case 4: printf("Thursday\n"); break;
        case 5: printf("Friday\n"); break;
        case 6: printf("Saturday\n"); break;
        case 7: printf("Sunday\n"); break;
        default:printf("error\n"); break;
    }
    return 0;
}

switch 是另外一种选择结构的语句,用来代替简单的、拥有多个分枝的 if else 语句,基本格式如下:

switch(表达式){
    case 整型数值1: 语句 1;
    case 整型数值2: 语句 2;
    ......
    case 整型数值n: 语句 n;
    default: 语句 n+1;
}

执行过程:

  1. 首先计算“表达式”的值,假设为 m。

  2. 从第一个 case 开始,比较“整型数值1”和 m,如果它们相等,就执行冒号后面的所有语句,也就是从“语句1”一直执行到“语句n+1”,而不管后面的 case 是否匹配成功。

  3. 如果“整型数值1”和 m 不相等,就跳过冒号后面的“语句1”,继续比较第二个 case、第三个 case……一旦发现和某个整型数值相等了,就会执行后面所有的语句。假设 m 和“整型数值5”相等,那么就会从“语句5”一直执行到“语句n+1”。

  4. 如果直到最后一个“整型数值n”都没有找到相等的值,那么就执行 default 后的“语句 n+1”。

当和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句
此刻引出了break语句

break语句

用来跳出switch语句,一旦遇到 break,就不再执行 switch 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。

为什么default后面不加break语句呢?

default为switch语句中的最后一条语句执行后自动跳出switch语句,所以就不用跳出

例题

下面我们来做例题巩固今天所学的内容:
小玉家的电费

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。