C语言学习笔记(3)之分支结构

分支结构

C语言中有三大控制结构:
顺序、选择、循环

顺序结构:
语句一条一条从上至下,从左至右执行的。

选择(分支):
if/switch

循环:
while、do while 、for

  1. if语句

    if语句有四种基本形式:
    (1) if(表达式)
    {
    语句;
    }

    只要“表达式”的值为真(非0),那么就会去执行语句.
    

    “表达式”:任意C语言中合法的表达式都可以。
    “语句”:分为单语句和复合语句。
    “单语句”:只有一个;语句。
    例子:
    if(a > b)
    c = a - b;

    "复合语句":用{}括起来的语句
    		if(a > b)
    		{
    			c = a - b;
    		}				
    

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

    当“表达式”为真(非0)时,执行语句1,否则执行语句2。
    “表达式”:任意C语言中合法的表达式都可以。
    “语句”:分为单语句和复合语句。

    例子:
    	int a,b;
    	if(5 > 3)
    	{
    		a = 1;
    		b = 2;
    	}
    	else
    	{
    		a = 3;
    		b = 4;
    	}
    	//a = 1,b = 2
    
    	int a,b;
    	if(5 > 3)
    	{
    		a = 1;
    		b = 2;
    	}
    	else
    		a = 3;
    		b = 4;
    	//a = 1,b = 4
    

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

    else
    {
    语句n;
    }

    先判断表达式1是否为真,为真执行语句1,为假就继续去判断表达式2,如果else if后面的某一个
    表达式的值为真,就去执行else if后面对应的语句,如果没有任何一个表达式的值为真则去执行
    语句n。
    else可以省略不写。

    例子:
    	根据如下的代码片段,试着写出number与cost之间的数学关系式:
    		if(num > 500)
    		{
    			cost = 0.15;
    		}
    		else if(num > 300)
    		{
    			cost = 0.10;
    		}
    		else if(num > 100)
    		{
    			cost = 0.075;
    		}
    		else if(num > 50)
    		{
    			cost = 0.05;
    		}
    		else
    		{
    			cost = 0;
    		}
    

    (4) if语句的嵌套:“条件里面还有条件”
    if()
    {
    if()
    {
    }
    else
    {
    }
    }
    else
    {
    if()
    {}
    else
    {}
    }

    else与if的匹配的问题:
    	else总是与它上面的,最近的,同级的,未匹配的if语句配对。
    
  2. switch(开关)语句

    形式:
    switch(表达式)
    {
    case 常量表达式1:
    语句1;
    case 常量表达式2:
    语句2;

    case 常量表达式n:
    语句n;
    default:
    语句m;
    }

    规则:
    拿表达式的值与case后面的常量表达式的值进行比较,一旦值相等,则从那个case后面开始执行
    直到遇到break或者switch结束,如果没有与任何一个case后面的常量表达式的值相匹配,
    则匹配default。

    重点:
    (1) switch后面的表达式的值必须为一个整数值(整型、字符型、枚举型),是一个可以列举的值
    (2) 常量表达式的值也必须为一个整数,且每个case后面的常量表达式的值必须各不相同。
    (3) 各个case与defalut出现的次序不影响匹配结果,一旦匹配成功,就从此往下执行。

    	例子:
    		switch(5)
    		{
    			default:
    				printf("5\n");
    				break;
    			case 1:
    				printf("1\n");
    				break;
    			case 2:
    				printf("2\n");
    				break;
    			case 3:
    				printf("3\n");
    			case 4:
    				printf("4\n");
    		}
    

    (4) 语句可以省略掉的,意思就是多个case可以共用一组语句。
    例子:
    switch(a)
    {
    case 1:
    case 2:
    case 3:
    语句1;
    break;
    default:
    语句2;
    }
    //a的值为1或者2或者3都会执行语句1

    (5) break是用来退出switch语句的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值