• C语言程序设计笔记3:判断 蓝银杏


    这个系列是用来解决学校C语言课程的,并不适用于ACM和OI

    本系列博客分为2部分,分别是 C语言程序设计笔记(网课) 和 课堂总结(线下课)

    欢迎转载ssw02的博客: https://www.cnblogs.com/ssw02/p/15994555.html


    C语言程序设计笔记3-1

    说在前面,有了前面两节的铺垫,是时候开始加速了哈

    代码中的//表示注释,该注释符号所在行后面的内容将不对程序本身产生影响

    代码中/* */ 这两个符号中间所有内容均为注释,可以跨多行

    1.关系运算

    我们先了解以下这些基本的关系运算
    
    A == B  判断A B是否相等
    
    A != B  判断A B是否不等
    
    A > B   A < B 判断 A是否大于(小于)B
    
    A >= B   A <= B 判断 A是否大于等于(小于等于)B
    
    如果上述关系成立(语句为真),则会返回值true(1),否则返回值false(0)
    

    我们可以尝试运行以下程序来进行验证

    #include<stdio.h>
    int a , b ; 
    int main(){
    	scanf("%d%d",&a,&b) ; 
    	printf("%d %d\n",a,b) ; 
    	printf("a等于b?  %d\n",a==b) ;
    	printf("a不等b?  %d\n",a!=b) ;
    	printf("a大于b?  %d\n",a>b) ;
    	printf("a小于b?  %d\n",a<b) ;
    	return 0 ;
    } 
    

    这里我们要注意

    关系运算的优先级低于算数运算

    例如7 >= 3 + 4 这个语句返回值为true,因为会先计算 3 + 4

    关系运算的优先级高于赋值运算

    例如int r = a > 0 这个语句会先判断 a是否大于0 , 再将返回值(1或者0)赋值给 r

    关系运算中 ==和!=的优先级更低,相同优先级下从左到右进行

    例如 4 > 3 == 5 > 4这句话返回值为true,因为 4 > 35 > 4的值都是true(1),最后再是1 == 1返回true

    再例如6 > 5 > 4的值为 0 , 因为相同优先级,从左到右,6 > 5为true, 原式变为 1 > 4 ,明显为false,所以最后的值为0

    2.if判断语句

    if判断语句是C语言中基础但又非常重要的一类语句。if表示如果,但在计算机中if往往用作判断

    常见的写法有如下几种

    if后面接单独一个语句

    if(条件)语句1;
    例如
    if( Apple_amount == 5 )printf("有5个苹果");
    

    if后面接多个语句(一定要用大括号括起来,大括号里只写一个语句也可以)

    if(条件){  //执行代码块
       语句1;
       语句2;
       .....
    }
    
    例如
    if( Apple_amount < 5 ){
       Apple_need = 5 - Apple_amount ;
       printf("我们还需要%d个苹果",Apple_need);
    }
    

    if else 判断语句 ,如果条件为true,执行if后面跟着的语句,如果为false,执行else后面跟着的语句

    if(条件)语句1(可以换成执行代码块)
    else 语句2(可以换成执行代码块)
    
    例如
    if( Apple_amount >= 5 ){
       printf("我们已经有足够的苹果");
    }
    else{
       Apple_need = 5 - Apple_amount ;
       printf("我们还需要%d个苹果",Apple_need);
    }
    

    多重if else 嵌套的语句

    if(条件1){
       if(条件2)执行代码块1
       else 执行代码块2
    }
    else{
       if(条件3)执行代码块3
       else if(条件4)执行代码块4
       ......
    }
    
    例如
    if( Apple_amount >= 5 ){
       if( Bad_Apple == 0 )printf("我们按照要求收到了足够的苹果,没有坏苹果");
       else printf("我们按照要求收到了足够的苹果,没有坏苹果");
    }
    else{
       if( Bad_Apple == 0 )printf("我们收到的好苹果不够,没有坏苹果");
       else if( Bad_Apple == Apple_amount )printf("我们收到的苹果不够,而且全部是坏苹果");
            else  printf("我们收到的苹果不够,而且有坏苹果");
    }
    
    

    switch多选择语句,当面临的单一条件选择比较多时,switch更方便,而且运行更加快捷

    switch(表达式){
       case 值1: 执行代码块1;break;
       case 值2: 执行代码块2;break;
       case 值3: 执行代码块3;break;
       ....
       default: 执行代码块n+1;  //可写可不写,当不满足上述所有条件时执行
    }
    //switch的表达式必须有值,用break语句会及时弹出,阻止运行接下来的所有语句和判断。
    
    例如:
    switch( Apple_amount ){
       case 0 : printf("我们没有拿到任何苹果") ; break ;
       case 5 : printf("我们拿到了想要的数量") ; break ;
       default : printf("我们拿到的苹果数量不对") ;
    }
    

    如果条件有多个需要同时满足用 && 连接 每一个条件

    例如:if( A>5 && A<9 )printf("A介于5-9之间")

    如果条件有多个需要满足其一即可用 || 连接 每一个条件

    例如:if( A>9 || A<5 )printf("A不介于5-9之间")

    3.习题答案

    1.判断该语句能否过编译if ( 1<=n<=10 );

    2.以下语句是否表示n属于[1,10]: if ( 1<=n<=10 ); 否,正确表示为if( 1<=n && n <= 10 )

    3.写出程序的输出结果:

    int i,j,k;
    i=5; j=10; k=1;
    printf("%d", k>i<j);
    //答案为1,相同优先级从左到右
    
    int i,j,k;
    i=2;j=3;
    k = i*j==6;
    printf("%d\n", k);
    //答案为1,先计算乘法再 判断是否相等 最后赋值
    
    int i,j,k;
    i=3;j=2;k=1;
    printf("%d", i<j == j<k);
    //答案为1,先判断 i < j 和 j < k , 都是false(0),相等,最终答案为true(1)
    
    

    4.场景应用标程

    #include <stdio.h>
    
    int main()
    {
    	printf("请输入月份:");
    	int month;
    	scanf("%d", &month);
    	switch ( month )
    	{
    		case 1: printf("January\n"); break;
    		case 2: printf("February\n"); break;
    		case 3: printf("March\n"); break;
    		case 4: printf("April\n"); break;
    		case 5: printf("May\n"); break;
    		case 6: printf("June\n"); break;
    		case 7: printf("July\n"); break;
    		case 8: printf("August\n"); break;
    		case 9: printf("September\n"); break;
    		case 10:printf("October\n"); break;
    		case 11:printf("November\n"); break;
    		case 12:printf("December\n"); break;
    		default:printf("不合法输入\n");
    	}
    
    	return 0;
    }
    
  • 相关阅读:
    迭代器和生成器
    小练习函数
    python学习(函数)
    python学习(文件的操作)
    【Python基础】数据结构
    【Python基础】break 和 continue 语句, 以及循环中的 else 子句
    【Python算法】汉诺塔
    【Python基础】序列(字符串、列表、元组)
    【Python基础】正则表达式
    【Python练习】分类数据
  • 原文地址:https://www.cnblogs.com/ssw02/p/15938920.html
Copyright © 2020-2023  润新知