分支控制流(if else switch)

本文详细介绍了C语言中的ifelseswitch语句的使用方法,包括if的基本用法、if与else的配合、if的嵌套以及switch语句的结构和注意事项。通过实例展示了如何根据分数评级和计算加盟费,强调了break在switch中的作用以及default的使用。
摘要由CSDN通过智能技术生成

学习目标:

if else switch 的使用方法和注意事项


学习内容:

if单独使用

if(表达式)
	{
	   复合语句;
	}

用法:

  •     只要表达式的值为真(非0),执行{ 复合语句} 。
  •     "表达式":任意的C语言合法的表达式都可以。

如果只有一条执行语句,可以这样写:

if(表达式)
		{
          执行语句1; // 如果表达式为真,那么执行语句1
		  执行语句2; //不管表达式是否为真,永远执行语句2,因为这个表达式不属于if响应范围
        }

if 与 else 配合使用

if(表达式)  //如果为真,执行复合语句1,如果为假,则执行复合语句2
	{
		复合语句1;
	}
	else
    {
		复合语句2;
	}

if(表达式1)     //如果为真,执行复合语句1
	{ 
		复合语句1;
	}           //如果判定条件1和判定条件2都满足,那么只会执行复合语句1,而不会执行复合语句2
	else if(表达式2)
	{
		复合语句2;
	}
	else if(表达式3)
	{
		复合语句3;
	}
    .....
	else        //以上三个条件都不满足的时候,就会执行复合语句n
	{
		复合语句n;
	}

if的嵌套: 条件里面再分条件

if的嵌套: 条件里面再分条件
	if(表达式1)//如果为真,执行复合语句1
	{
		if(表达式11)
		{
			复合语句1;
		}			
	}
	else if(表达式2)
	{
		复合语句2;
	}	

编程规范:写完if或else后,不管后面有没有语句,请先写{}圈定它的范围,然后再到{}里面补充语句,用Tab缩进。

例题:制作一个简单的打分系统(满分制:100)
    60分以下:评级 D;60-80:评级 C; 80-90: 评级 B; 90-100:评级 A;不在0-100范围之内,错误。

#include <stdio.h>

int main() 
{
	int input;
	
	printf("请输入成绩:");
	scanf_s("%d", &input);

	if (input <= 100)
	{
		if (input >=90)
		{
			printf("评级:A\n");

		}
		else if (input < 90 && input >= 80)
			
		{
			printf("评级:B\n" );
		}
		else if (input < 80 && input >=60)
		{
			printf("评级:C\n");
		}
		else   
		{
			printf("评级:D\n");
		}
	}
	else
	{
		printf("抱歉,输入的数只能≤100\n" );
	}
	
	return 0;
}

switch语句(开关语句)

格式:
		switch(表达式) // 或者也可以说是 判断值
		{
			case 常量表达式1:
					执行语句1
					break;
			case 常量表达式2:
					执行语句2
					break;
			case 常量表达式3:
					执行语句3
					break;
			default:
					其他情况下执行的语句
					break;
		}

(1)"表达式"的值必须为整数值(整型,字符型,枚举)
(2)"常量表达式"的值必须为整数值,且每个case后面的常量表达式的值必须不相同。
(3)当表达式的值与某一个case后面的常量表达式的值相同时,就会打开"开关",执行冒号后面的语 句,直到有break语句就提前跳出switch,否则就轮到下一个case,且不会比较常量表达式的值,就直接执行冒号后面的语句(因为开关已经打开了),当所有的语句都执行完了,就结束了switch。
(4)break;提前跳出switch语句,常用的用法是每个case语句后都有一个break语句。
(5)当所有case后面的常量表达式都不匹配时,就会执行default后面的语句,且打开"开关"。
    
注意:
    1,break在这里是退出switch的关键,如果在case当中的执行语句中没有遇到break,它将会一直执行下去,直到遇到break或者到底了
    2,default这个可加可不加
    3,default放在哪里都不会影响switch的正常使用
    4,“判断值”只能是整型数据或者是枚举

例如:

计算加盟费
    小张加盟了一家餐饮企业,在每个季度结束后,小张必须向总部缴纳加盟费,
    加盟费与营业额的提成关系如下
        营业额                 提成系数
            0<= n <10w                 0.1
        10<=n <20w                0.075
        20<=n <40w                0.05
        40<=n <60w                0.03
        60<=n <100w              0.015
        n >=100w                     0.01
        请输入小张的营业额,然后求出他需要提交的加盟费    

#include <stdio.h>

int main() 
{
	double input;
	double _$;
	int i;
	printf("输入营业额(w):");
	scanf_s("%lf", &input);
	
	switch(i= input/10)
	{ 
	case 0 :
		_$ = input * 0.1;
	    printf("需要提交的加盟费为(w):%lf", _$);
		break;
	case 1:
		_$ = input * 0.075;
		printf("需要提交的加盟费为(w):%lf", _$);
		break;
	case 2|3:
		_$ = input * 0.05;
		printf("需要提交的加盟费为(w):%lf", _$);
		break;
	case 4|5:
		_$ = input * 0.03;
		printf("需要提交的加盟费为(w):%lf", _$);
		break;
	case 6|7|8|9:
		_$ = input * 0.015;
		printf("需要提交的加盟费为(w):%lf", _$);
		break;
	
	default:
		_$ = input * 0.01;
		printf("需要提交的加盟费为(w):%lf", _$);
		break;
	}
	return 0;
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值