分支和循环(一)

1.if语句
(1)单分支语句
(2)多重选择语句
(3)悬空else问题
(4)代码块
2、switch语句

一、结构和语句

1、C语言是一名结构化的语言,可分为顺序结构,选择结构,循环结构
2.什么是语句?
C语言中由一个分号( ; )隔开的就是一条语句。
一个;也是语句——空语句

二、分支语句(选择结构)

1.if语句

(1)单分支语句

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int age = 18;
	scanf("%d", &age);
	if (age < 18)
		printf("少年\n");
	return 0;
}

(2)多重选择语句

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("少年\n");
	//如要求判断age大于等于18小于30怎么写?
	//写成else if (18<= age < 30)是错的
	//编译器先判断18<=age是否成立,成立为逻辑1,不成立为逻辑0,在进行下一步判断
	//应写成age >= 18 && age < 30
	else if (age >= 18 && age < 30)
		printf("青年\n");
	else if (age >= 30 && age < 50)
		printf("中年\n");
	else if (age >= 50 && age < 80)
		printf("老年\n");
	else//else去掉也可以
		printf("老不死\n");
	return 0;
}

也可以将一部分情况归到else之中,如将上述代码写成下列代码,运行结果一致。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("少年\n");
	else
	{
		if (age >= 18 && age < 30)
			printf("青年\n");
		else if (age >= 30 && age < 50)
			printf("中年\n");
		else if (age >= 50 && age < 80)
			printf("老年\n");
		else
			printf("老不死\n");
	}
	return 0;

(3)悬空else问题

else只会和离它最近的未匹配的if进行匹配。

int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
		printf("hehe\n");
		else//else自动其最近的还没匹配的if对齐,而不是第一个
		printf("haha\n");//因此强调代码格式
	return 0; 
}
//可以看到运行结果为空

(4)代码块

条件完成后执行多条语句时,要使用{},即代码块。

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年\n");
		printf("不能谈恋爱\n");
	}
	return 0;
}

2、switch语句

switch语句也是一种分支语句。 常常用于多分支的情况。
witch(整型表达式) 注意必须要是整型
{
case(整形表达式): case后面必须要跟整型常量表达式
break;
}

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int i = 0;
	scanf("%d", &i);
	switch (i)//括号内必须为整形,判断值并跳转到对应情况,因此i也必须定义为整形
	{
	case 1:  //case后必须是整形表达式
	case 2:
		printf("100\n");
		break;//跳出switch循环,一般不可少,但是同一输出结果时可以不写
	case 3:
		printf("300\n");
		break;//理论上最后一个break可以不写(也可跳出循环),但最好还是写,养成好习惯,后面便于添加case
	default: //定义case没有的情况,可有可无(建议写(空语句也行)),与case没有顺序可言
		printf("输入错误\n");
		break;
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值