C语言第二节-关系运算符,switch,if

1.BOOL布尔类型

是一种非真即假的数据类型,布尔类型的变量只有YESNO两个值
在C语言中,非0即为真

// 标准: C89 没有布尔类型, C99
   
//C 工程支持 C89 OC 工程支持 C99
   
   
//BOOL 包含两个值:真( YES )、假( NO
   
   
BOOL r1 = YES ;
   
BOOL r2 = NO ;
   
   
// 布尔类型使用 %d 输出, YSE 1   NO 0
   
//#define YES 1   #define NO 0
   
// 计算机已经定义
   
printf ( "r1 = %d, r2 = %d\n" , r1, r2);
   
    //bool包含两个值:真(true)、假(false

2.关系运算符

#pragma mark----- 关系运算符 > >= < <= == !=
   
   
/*
     1 、用于两个数的比较
     2
、关系运算符的结果只有两种:真、假。使用 BOOL 类型变量接收。
     3
、由常量、变量、关系运算符组成的表达式,称为关系表达式
     */

   
   
// 大于、小于
   
   
BOOL r3 = 5 > 3 ;
   
printf ( "r3 = %d\n" , r3);
   
   
BOOL r4 = 5 > 4 > 3 //5>4 结果为真, 1<3 结果为假
   
printf ( "r4 = %d\n" , r4);
   
   
//>= <=
   
   
BOOL r5 = 5 >= 5 ;
   
printf ( "r5 = %d\n" , r5);
   
   
//== 等于 != 不等于
   
//= 赋值运算符
   
// 浮点数不能使用 == 比较是否相等,小数在存储时存在精度问题。整型和字符型可以使用。
   
   
BOOL r6 = 7 == 8 ;
   
printf ( "r6 = %d\n" , r6);
   
   
BOOL r7 = 7 != 8 ;
   
printf ( "r7 = %d\n" , r7);
   
    // 计算机在存储字符时,本质上存储的是对应的整型数
    // 字符和整型数的对应关系,依据 ASCII 编码规范
   
   
char a = 'A' ;
   
printf ( "%c\n" , a);
    printf("%d\n", a);

3.逻辑运算符

#pragma mark----- 逻辑运算符
   
   
/*
    
    
逻辑与   &&
    
    
公式: 表达式 1 && 表达式 2
    
运算规则:只有表达式 1 和表达式 2 同时为真,逻辑与表达式的结果才为真。 一假全假。
    
    
    
     */

   
   
int a = 10 ;
   
int b = 20 ;
   
   
// 表达式 1 a<b, 结果为真;表达式 2 本,结果为假
   
//(a < b) && (b == 3) 的结果为假
   
BOOL r1 = (a < b) && (b == 3 );
   
printf ( "r1 = %d\n" , r1);
   
   
BOOL r2 = (a == 3 ) && (b > a);
   
printf ( "r2 = %d\n" , r2);
   
   
BOOL r3 = (a > 5 ) && a++;
   
printf ( "r3 = %d, a = %d\n" , r3, a);
   
   
// 短路现象
   
// 当表达式 1 结果为假时,逻辑与表达式的结果已经确定为假,所以表达式 2 不再执行
   
BOOL r4 = (b < 5 ) && b++;
    printf("r4 = %d, b = %d\n", r4, b);

/*
    
    
逻辑或 ||
    
    
公式:表达式 1 || 表达式 2
    
运算规则:表达式 1 和表达式 2 ,只要有一个结果为真,逻辑或表达式结果为真。   一真即真。
    
    
    
     */

   
   
int a = 10 ;
   
int b = 20 ;
   
   
BOOL r1 = (a < b) || (b == 3 );
   
printf ( "r1 = %d\n" , r1);
   
   
BOOL r2 = (a == 3 ) || (b < a);
   
printf ( "r2 = %d\n" , r2);
   
   
   
// 短路现象
   
BOOL r3 = (b > 5 ) || b++;
   
printf ( "r3 = %d, b = %d\n" , r3, b);
   
   
   
// 逻辑非     取反
   
   
BOOL r4 = !(a > b);
    printf("r4 = %d\n", r4);

/*
     (大概
    
运算符的优先级
    
     () > ! >
算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符

 */

if语句

1.if (<#condition#>) {
        <#statements#>
    }
else {
        <#statements#>
    }
// 输入一个 年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年
    // 提示:闰年:能被 400 整除或者 ( 能被 4 整除,但是不能被 100 整除 )
   
    int  year = 0 ;
   
   
printf ( " 输入一个年份: " );
   
scanf ( "%d" , &year);
   
   
   
//a % b == 0  a 能被 b 整除
   
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0 ) ) {
       
printf ( " 该年份是闰年 \n" );
    }
else {
       
printf ( " 该年份不是闰年 \n" );
    }

2. if (<#condition#>) {
        <#statements#>
    }
else  if {
        <#statements#>
    } else {
        <#statements#>
}

// 练习:从键盘输入一个字符,如果是 数字 打印 this is digital ,如果是大写字母,打印 this is  capital letter ,如果是小写字母,打印 this is letter ,如果是其他字符,打印 other
   
   
char character = 0 ;
   
   
printf ( " 请输入一个字符 :" );
   
scanf ( "%c" , &character);
   
   
// 当条件控制在某个范围,使用 &&  || 这种结构,绝对不可以使用 a<b<c 这种连续结构
   
if (character >= '0' && character  <= '9' ) {
       
       
printf ( "this is digital 数字 \n" );
       
    }
else if (character >= 'A' && character <= 'Z' ) {
       
       
printf ( "this is capital letter 大写字母 \n" );
       
    }
else if (character >= 'a' && character <= 'z' ) {
       
       
printf ( "this is letter 小写字母 \n" );
       
    }
else {
       
       
printf ( "other\n" );
    }

switch语句

条件运算符
   /*
    
     ?:
    
    
公式:条件表达式 ?表达式 1 :表达式 2
    
运算规则 : 条件表达式为真,执行表达式 1 ;条件表达式为假,执行表达式 2
    
     */
switch
  /*
    switch (
整型或者字符型表达式 ) {
        case
1: {
    
            //case
后面的值是整型或字符型常量
           
语句 1
            break;
        }
        case
2: {
    
            //case
后面的值是整型或字符型常量
           
语句 2
            break;
        }
        default:
            break;
    }
    
     1
、如果表达式的值没有和任何一个 case 后面的值匹配成功,执行 default 分支。
    
     2
break 语句的作用:结束当前 case 分支,并且结束 switch 语句。
     */

   
   
// 定义一个字符变量,设置初始值。如果字符变量是 m ,输出男性;如果字符变量是 f ,输出女性;其他输出未知。
   
   
char character = 'm' ;
   
   
switch (character) {
       
case 'm' : {
           
printf ( " 男性 \n" );
           
break ;
        }
           
       
case 'f' : {
           
printf ( " 女性 \n" );
           
break ;
        }
           
       
default :{
           
printf ( " 未知 \n" );
           
break ;
        }
    }
   
   
   
// 从控制台输入一个整数,输出对应的水果名称
   
//1- 苹果   2- 梨子 3- 桔子 4- 香蕉
   
   
int number = 0 ;
   
printf ( " 请输入一个整数 1 2 3 4 " );
   
scanf ( "%d" , &number);
   
   
switch (number) {
       
case 1 : {
           
printf ( " 苹果 \n" );
           
break ;
        }
       
case 2 : {
           
printf ( " \n" );
           
break ;
        }
       
case 3 : {
           
printf ( " 桔子 \n" );
           
break ;
        }
       
case 4 : {
           
printf ( " 香蕉 \n" );
           
break ;
        }
           
       
default :
           
break ;
    }
   
   
// 多个 case 可以运行同一个代码段
   
   
// 练习:按照考试成绩( ABCD )的等级,输出百分制分数段
   
//ABC :属于 >60   D :属于 <60
   
   
char   level = 'A' ;
   
   
switch (level) {
       
case 'A' :
       
case 'B' :
       
case 'C' : {
           
printf ( " 输出 60 分以上 \n" );
           
break ;
        }
       
case 'D' : {
           
printf ( " 输出 60 分以下 \n" );
           
break ;
        }
       
default :
           
break ;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值