初阶C语言(01)—学习笔记

if 语言

if 语句 其一#

C语言被称为结构化的程序设计语言,包括顺序结构、选择结构(if switch)和循环结构(for while do while)。

因为今天要下雨,所以必须带伞。这就是一个简单的选择语句。例如:如果你的年龄大于18岁,那么输出成年。

#include<stdio.h>

int main()
{
	int age = 20;
	
	if (age > 18)
		printf("成年\n");
	return 0;
}

if 语句的格式如下

if (表达式)
	语句;

if 语句会让程序执行如下处理:

判断表达式的值,如果结果不等于0(即逻辑为真),则执行相应的语句。

括号内对条件进行判断的表达式称为控制表达式。

test: 奇数的判断

通过判断输入的整数能否被2整除,如果可以请输出“输入的数是奇数”。

#include<stdio.h>

int main()
{
	//初始化
	int n = 0;
	// 输入
	scanf("%d", &n);
	// 判断
	if (n % 2)
		//输出
		printf("输入的数是奇数\n");
	return 0;
}

if 语句 其二#

执行选择语句:“如果你的年龄大于18岁,那么输出成年。”

当输入的年龄小于18岁时,不能输出任何信息,这样有可能会让使用者用起来不放心,因此,如果小于18岁,则输出“未成年”。

#include<stdio.h>

int main()
{
	//初始化
	int age = 20;
	// 输入
	scanf("%d", &age);
	// 判断和输出
	if (age >= 18)
		printf("成年");
	else
		printf("未成年");

	return 0;
}

if 语句的格式如下

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

else是否则的意思。当表达式的值不等于0时,执行语句1;当表达式的值等于0时,执行语句2。

test: 奇数和偶数的判断

通过判断输入的整数能否被2整除,如果可以请输出“输入的数是奇数”;否则请输出“输入的数是偶数”。

#include<stdio.h>

int main()
{
	//初始化
	int n = 0;
	// 输入
	scanf("%d", &n);
	// 判断
	if (n % 2)
		//输出
		printf("输入的数是奇数\n");
	else
		printf("输入的数是偶数\n");
	return 0;
}

复合语句(代码块)#

eg.,计算所输入的两个整数中的较大数和较小数

#include<stdio.h>

int main()
{
	//初始化
	int num1, num2,max,min;
	//输入
	scanf("%d %d", &num1, &num2);
	// 判断
	if (num1 > num2)
	{
		max = num1;
		min = num2;
	}
	else
	{
		max = num2;
		min = num1;
	}
	// 输出
	printf("较大的数是 %d\n",max);
	printf("较小的数是 %d\n",min);
	return 0;
}
if (num1 > num2)
{
	语句3;
	语句4;
}/语句块1
else
{
	语句1;
	语句2;
}//语句块2

形如语句块1和语句块2这样在大括号内并排上书写的语句被称为符合语句或者是程序块。在使用单一语句的位置,如果一定要使用多个语句,可以把他们组合成符合语句(代码块)来实现;否则可能会出现编译错误或达不到要求。

多分支语句#

eg 对不同年龄阶段的称呼(左闭右开)

青少年(0~18),青年(18-28),中年(28-40),壮年(40-60),老年(60-100),老寿星(>=100)。代码如下

#include<stdio.h>

int main()
{
	int age = 10;
	// 输入
	scanf("%d", &age);
	//

	if (age < 18)
		printf("青少年\n");
	else if (age >= 18 && age < 28)
		printf("青年\n");
	else if (age >= 28 && age < 40)
		printf("中年\n");
	else if (age >= 40 && age < 60)
		printf("壮年\n");
	else if (age >= 60 && age < 100)
		printf("老年\n");
	else
		printf("老寿星");
	return 0;
}

多分支语句的结构如下

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

当表达式1为真时执行语句1;当表达式2为真时执行语句2;当表达式1和表达式2都为0时执行语句3。

test 输出1-100之间的奇数

#include<stdio.h>

int main()
{
	int i = 1;
	while (i <= 100)
	{
		if (i % 2 == 1)
			printf("%d\n", i);
		i++;
	}
	return 0;
}

switch 语句

if ……else if……else if……else……的形式太过于复杂,那我们就得有不一样的语法形式,这就是swich语句,它的语法格式如下

switch(整型表达式)
{
	//语句项就是一些case语句:
	//如下:
	case 整型常量表达式:
		语句;	
}

switch 语句和 break语句#

eg.,输出今天是星期几?

#include<stdio.h>

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

如“case 1:”这样用来表示程序跳转的标识称为标签(label)。

标签的值必须是常量,不可以是变量。另外,不允许多个标签为同一个值。程序跳转到该标签后,会按照顺序执行其后的语句。

当程序执行到break语句时,会跳出将它包围起来的switch语句。

#include<stdio.h>

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 0;
}
  • 编程好习惯

    最后一个case的末尾加上break语句的话,就可以灵活的对case的增加或删除了。

注意通过单一表达式来控制的程序流程分支的时候,使用switch语句的效果通常要比使用if 语句的更好。

default子句#

如果表达式的值和所有的case标签值都不匹配怎么办?

其实也没什么,结果就是所有的语句都被跳过而已。

程序并不会终止,也不会报错,因为这种情况在C语言下不认为是一个错误。

但是,如果你并不想忽略不匹配的所有标签的表达式的值应该怎么办呢?

你可以在语句块中增加一条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("工作日");
		break;
	case 6:
	case 7:
		printf("休息日");
		break;
	default:
		printf("选择错误\n");
		break;
	}
	return 0;
}

注意default子句可以写在任何一个case标签出现的位置,但是每一个switch语句中只能出现一条default子句。

  • 编程好习惯

    每一个switch语句中都放一条default子句,甚至可以在后边再加一个break。

posted @   一只小小小飞猪  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示
主题色彩