C语言:分⽀和循环(上)

本文介绍了C语言中的关系运算符、条件操作符以及逻辑运算符,包括它们的用法、比较表达式的真假判断,以及如何在if和switch语句中构建分枝结构。还强调了嵌套if和break语句的重要性,以及switch语句的使用和default子句的处理方式。
摘要由CSDN通过智能技术生成

正文开始

前言:在C语⾔中  0为假    ⾮0表⽰真

也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果不是0,则语句执⾏

一:操作符

  1. 1关系操作符

    C语⾔⽤于⽐较的表达式,称为“关系表达式”(relationalexpression),⾥⾯使⽤的运算符就称 为“关系运算符”(relationaloperator),主要有下⾯6个

     > ⼤于运算符

    < ⼩于运算符

     >= ⼤于等于运算符

     <= ⼩于等于运算符

     == 相等运算符

     != 不等运算符

 关系表达式通常返回 0 或 1 ,表⽰真假。

C语⾔中, 0 表⽰假,所有⾮零值表⽰真。

例如

 关系表达式常⽤于 if 或 while 结构。

注意:相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符

if(3=x) --------------------------------(此时永远判断为真)                                      

 if(3==x)---------------------------------(此时判断x是否等于3)

 另⼀个需要避免的错误是:多个关系运算符不宜连⽤

i < j < k

 实际执⾏的是

(i < j) < k----------------上⾯式⼦中, i < j 返回 0 或 1 ,所以最终是 0 或 1 与变量 k 进⾏较

 #include <stdio.h>
 int main()
 {
 int a = 0;
 scanf("%d", &a);
 if(a>=80 && age<=100)
 {
 printf("优秀\n");
 }
 return 0}

 

2 条件操作符

条件操作符也叫三⽬操作符,需要接受三个操作数的,形式如下:

1 exp1 ? exp2 : exp3

条件操作符的计算逻辑是:

如果exp1 为真, exp2 计算,计算的结果是整个表达式的结果;

如果 exp1 为假,exp3 计算,计算的结果是整个表达式的结果;

 

4. 逻辑操作符:                &&                     ||                           !                               

 逻辑运算符提供逻辑判断功能,⽤于构建更复杂的表达式

!      逻辑取反运算符    改变单个表达式的真假

&&  与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)

||      或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假) 

!--------------是改非;非改是

&&-------------两真才为真

||----------------一真可为真 

代码练习:闰问题 


 #include <stdio.h>
 
int main()
 {
 int year = 0;
 scanf("%d", &year);
 if(year%4==0 && year%100!=0)
 printf("是闰年\n");
 else if(year%400==0)
 printf("是闰年\n");
 return 0;
 }

C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是 保证的。

所以如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。 

if(12>15&&a++) ----------------------此时左边的表达式已经满足逻辑运算符的判断条件

                                                       右边表达式不再执行

 

二:分⽀结构

1 :if 语句

由一个问题引入if的讲解

成绩划分

(一)  两种基本形式

1    if ( 表达式 )

         语句

 输入一个分数,大于60,就是及格

#include <stdio.h>
 int main()
 {
 int a = 0;
 scanf("%d", &a);
 if(a>=60)
 printf("=及格=\n");
 return 0;

2    if ( 表达式 )

      语句 1

      else 

      语句 2 

输入一个分数,大于60,就是及格,小于60,就是不及格 

#include <stdio.h>
 int main()
 {
 int a = 0;
 scanf("%d", &a);
 if(a>=60)
 printf("及格\n");
 else
 printf("不及格\n“)
return 0;
}

  (二) 嵌套if

那么,你已经学会骑自行车了

可以开始驾驶坦克了

现在让我们写一个完整的代码

 

#include<stdio.h>
main()
{
 float a;
 printf("请输入分数");
 scanf("%f",&a);
 if(a<60){
 	printf("%f不及格",a);
 }
 else if(a==60){
 	printf("%f及格",a);
 }
 else if(a<=80){
 	printf("%f中等",a);
 }
 else if(a<=89){
 	printf("%f良好",a);
 }
else if(a<=100){
 	printf("%f优秀",a);
 }
}

if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断,这就是if嵌套

(三)else与if的配对

记住一句话:else永远最近的if配对

2:switch语句

那么,

#include<stdio.h>
main()
{
 float a;
 printf("请输入分数");
 scanf("%f",&a);
 if(a<60){
 	printf("%f不及格",a);
 }
 else if(a==60){
 	printf("%f及格",a);
 }
 else if(a<=80){
 	printf("%f中等",a);
 }
 else if(a<=89){
 	printf("%f良好",a);
 }
else if(a<=100){
 	printf("%f优秀",a);
 }
}

这个可以替代吗?

#include <stdio.h>
int main()
{
printf("输入成绩");
int a;
scanf("%d", &a);
grade /=10;
switch ( a ) {
case 10:
case 9:
printf("优秀\n");
break;
case 8:
printf("良好\n");
break;
case 7:
printf("中等\n");
break;
case 6:
printf("及格\n");
break;
default:
printf("不及格\n");
break;
}
return 0;
}

下面介绍一下SWITCH 

switch 语句是⼀种特殊形式的结构,⽤于判断条件有多个结果的情况。它把多重if 改成更易⽤、可读性更好的形式。

基本形式:

switch (expression)

{ case value1: statement

case value2: statement

default: statement

}

上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值, 就执⾏ default 分⽀。

注: • switch 后的 expression 必须是整型表达式

• case 后的值,必须是整形常量表达式

 •case 和后边的数字之间必须有空格

• 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。

1,在 switch 语句中 break 语句是⾮常重要的,能实现真正的分⽀效果

 

当然,break也是要看需求的;

 2,switch语句中的default

在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹 配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊ default ⼦句。

在 switch 语句中 case ⼦句和 default ⼦句有要求顺序吗? default 只能放在最后吗?

其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理

 

  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值