控制语句-if

控制语句-if

一、学习目标

1.了解顺序语句,分支语句、循环语句。

2.掌握if~else语句的使用

3.总结与思考

二、C语言控制语句概述

  • 分支:
    • if() ~ else ~
    • switch
  • 循环:
    • for()~
    • while()~
    • do~while()
    • goto
  • 辅助控制:
    • continue
    • break
    • return

三、if~else语句

  • if语句概述
    ​ if(表达式)
    ​ 语句块1
    ​ else
    ​ 语句块2

  • 常见形式

    • 简化形式
      • if(表达式)语句块
      • 阶梯形式
      • 嵌套形式
  • 例子分析:
    ①输入分数
    ②判断是否合法
    ​ ③评级分为A:[90,100]、B:[70,90]、C:[60,70]、D:[0,60]分别对应不同的成绩段

  • if~else语句注意事项

    • 语句块:当有若干条语句时,必须用{……}括起来。

    • 表达式:

      • 一般情况下为逻辑表达式或关系表达式

        如:if(a == b && x == y) printf(“a = b , x = y”);

      • 也可以是任意类型(包括整型、实型、字符型、指针类型)

        如:if(‘a’) printf("%d", ‘a’);

      • 请区分if( x = 1)与if(x == 1)的不同。

四、编程实例

  • 学生成绩(if()~ else ~)

    #include <stdio.h>
    
    int main()
    {
    		float score;
      
    		printf("please input your score:");
    		scanf("%f", &score);
    
    		if(score < 0 || score > 100){
    				printf("not in [0 , 100]\n");
    		}
    		else{
    					if(score >= 90)
    						printf("A-Excellent!\n");
    					else{
    							if(score >= 70)
    								printf("B-Good!\n");
    							else{
    									if(score >= 60)
    											printf("C-Ok!\n");
    									else
    											printf("D-Not pass!\n");
    					}
    				}
    		}
    		return 0;
    }
    
    
  • 用逻辑与&&进行分析

    #include <stdio.h>
    
    int main()
    {
    		float score;
    
    		printf("please input your score:");
    		scanf("%f", &score);
    
    		if(!(score >= 0 && score <= 100)){
    				printf("not in [0 , 100]\n");
    		}
    		else{
    				if(score >= 90)
    						printf("A-Excellent!\n");
    				else{
    						if(score >= 70)
    								printf("B-Good!\n");
    						else{
    								if(score >= 60)
    									printf("C-Ok!\n");
    								else
    									printf("D-Not pass!\n");
    					}
    				}
    		}
    		return 0;
    }
    
  • 区分if(x = 0)和if(x == 0)

    #include <stdio.h>
    
    int main(){
    
    	int x = 7;
    
      if(x = 8)
    		printf("if:x=%d\n",x);
    	else
    		printf("else:x=%d\n",x);
      
    	return 0;
    }
    
    • 运行结果:if(x = 8),x=8为将8赋值给x
      if$ ./a.out 
      if:x=8
      
    #include <stdio.h>
    
    int main(){
    
    	int x = 7;
    
      if(x == 8)
    		printf("if:x=%d\n",x);
    	else
    		printf("else:x=%d\n",x);
      
    	return 0;
    }
    
    • 运行结果: if(x == 8),x等于8
      $ ./a.out 
      else:x=7
      
    #include <stdio.h>
    
    int main(){
    
    	int x = 7;
    
      if(8 = x)
    		printf("if:x=%d\n",x);
    	else
    		printf("else:x=%d\n",x);
      
    	return 0;
    }
    
    • 运行结果:if(8 = x) 将数字放到等号左边,必须使用==,否则会报错

      if$ gcc if.c -Wall
      if.c: In function ‘main’:
      if.c:7:7: error:lvalue required as left operand of assignment
        if(8 = x)
      
  • 排序

    #include <stdio.h>
    
    int main(){
    
        float a = 4, b = 5, c = 2, t;
    
        if(a > b){t = a; a = b; b = t;} 
        if(a > c){t = a; a = c; c = t;} 
        if(b > c){t = b; b = c; c = t;} 
                
        printf("%5.2f,%5.2f,%5.2f\n", a, b, c); 
    
        return 0;
    }
    
    • 运行结果:

      if$ ./a.out 
       2.00, 4.00, 5.00
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值