一、关系运算

若干表达式用关系运算符连接而成,就构成关系表达式。
关系表达式中,表达式成立,其值为1(真);表达式不成立,其值为0(假)。
其他表达式中,其结果如果是非0则为真,结果为0则为假。
关系运算符的优先级低于算术运算符,高于赋值运算符。

关系运算符号:> >= < <= !=

  1. #include "stdio.h"
  2. void main()
  3. {
  4. //1、关系运算常用于比较
  5. //2、关系运算只有两种结果,1真,0假
  6. int a=,b=,c=;
  7. printf("\n %d",a==b);
  8. printf("\n %d",a>=b);
  9. printf("\n %d",a!=b);
  10. printf("\n %d",<=);
  11. printf("\n %d",c<);
  12. printf("\n %d",a+b>c);
  13. }

运算结果:

二、逻辑运算

!(逻辑非)
运算规则:!1 = 0,!0 = 1 。优先级:高。
&&(逻辑与)
运算规则:1&&1=1,1&&0=0,0&&1=0,0&&0=0优先级:中
||(逻辑或)
运算规则:0||1=1,1||0=1,0||0=0,1||1=1。
优先级:低

注意:短路,当与运算时,第一个表达式为假时,不会再处理第2个表达式。

a&&b

当或运算时,第1个表达式为真是,不会再处理第2个表达式

a||b

注意:

另外使用时必须注意以下几点:
代数中的不等式0<x<5必须写成(x>0)&&(x<5)
C语言允许直接对数字或字符进行逻辑运算。
例如:!5,其结果为0。因为在C语言中,非0的值均认为是“真”,而5是个非零值,对非零值求反,即得零值。5&&‘c’,结果为1。因为字符'c'的ASCLL码为非零的整数,非零值与非零值作“与”运算,结果为真。

三、运算优先级

四、if语句

4.0、代码块

代码块表示一段代码,有{}符号界定,是一个新的作用域,可以有0-n行代码。

  1. #include "stdio.h"
  2. void main()
  3. {
  4. //代码块1
  5. {
  6. int a=;
  7. printf("\n %d",a);
  8. }
  9.  
  10. //代码块2
  11. {
  12. int a=;
  13. printf("\n %d",a);
  14. }
  15.  
  16. }

4.1、单if语句

  1. #include "stdio.h"
  2. void main()
  3. {
  4. int a=,b=,c=;
  5. if(a<=b&&c++<=c)
  6. {
  7. printf("\n yes %d",c);
  8. }
  9. printf("\n no %d",c);
  10. }

if(条件表达式)
{
条件表达式为真时要执行的语句块(分支一语句);
}
其语义是:
如果表达式的值为真,则执行其后的分支一语句, 否则不执行该分支一语句。

4.2、if else

if(条件表达式)
{
条件表达式为真时要执行的语句块(分支一语句);
}
else
{
条件表达式为假时要执行的语句块(分支二语句);
}
其语义是:如果表达式的值为真,则执行分支一语句,否则执行分支二语句。

  1. /* Note:Your choice is C IDE */
  2. #include "stdio.h"
  3. void main()
  4. {
  5. int a,b,c,max;
  6. scanf("%d",&a);
  7. scanf("%d",&b);
  8. scanf("%d",&c);
  9. //如果条件成立
  10. if(a>b)
  11. {
  12. max=a;
  13. }
  14. else //如果条件不成立
  15. {
  16. max=b;
  17. }
  18.  
  19. if(c>max){ //有代码块的地方,总是会执行一句
  20. max=c;
  21. }
  22.  
  23. printf("最大值是:%d",max);
  24. }

4.3、多重if

  1. /* Note:Your choice is C IDE */
  2. #include "stdio.h"
  3. void main()
  4. {
  5. int a;
  6. scanf("%d",&a);
  7.  
  8. if(a<)
  9. {
  10. printf("负数");
  11. }
  12. else if(a==)
  13. {
  14. printf("零");
  15. }
  16. else if(a>=)
  17. {
  18. printf("大于100的正数");
  19. }
  20. else
  21. {
  22. if(a>= && a<=)
  23. {
  24. printf("1-50");
  25. }
  26. else
  27. {
  28. printf("51-99");
  29. }
  30. }
  31.  
  32. printf("\n程序完成");
  33.  
  34. }

使用多重if完成下面的内容:
输入分数,根据分数输出等级.
0-59 不及格
59-70 良好
71-85 优秀
86-100 卓越

4.4、?号:号表达式

  1. /* Note:Your choice is C IDE */
  2. #include "stdio.h"
  3. void main()
  4. {
  5. int a,b,c;
  6. scanf("%d",&a);
  7. scanf("%d",&b);
  8.  
  9. //a>10?printf("大于10"):printf("小于等于10");
  10. c=(a>b)?(a++):(++b);
  11.  
  12. printf("%d",c);
  13. }

五、switch语句

  1. /* Note:Your choice is C IDE */
  2. #include "stdio.h"
  3. void main()
  4. {
  5. int a;
  6. scanf("%d",&a);
  7.  
  8. switch(a)
  9. {
  10. case :
  11. printf("a");
  12. break;
  13. case :
  14. printf("b");
  15. break;
  16. case :
  17. printf("c");
  18. break;
  19. default:
  20. printf("错误:");
  21. if(a>)
  22. {
  23. printf("数字太大。");
  24. }
  25. else
  26. {
  27. printf("数字太小");
  28. }
  29. }
  30.  
  31. }

练习:

使用switch完成菜单功能,用户按键(1-5)选择。
1、开始游戏
2、创建存档
3、加载存档
4、加载地图
5、退出
请选择(1-5):

当输入1-5以外的内容时输出错误

switch练习2:

输入年份与月份,输出天数。

年:2008

月:2

29

年:2009

月:3

31

答案:

  1. #include "stdio.h"
  2. void main()
  3. {
  4. float mark;
  5.  
  6. printf("请输入分数:");
  7. scanf("%f",&mark);
  8.  
  9. if(mark<)
  10. {
  11. printf("不及格");
  12. }
  13. else if(mark>= && mark<=)
  14. {
  15. printf("良好");
  16. }
  17. else if(mark>= && mark<=)
  18. {
  19. printf("优秀");
  20. }
  21. else
  22. {
  23. printf("卓越");
  24. }
  25.  
  26. }
  1. #include "stdio.h"
  2. void main()
  3. {
  4. int menu;
  5. printf("\n**********************************");
  6. printf("\n1、开始游戏");
  7. printf("\n2、创建存档");
  8. printf("\n3、加载存档");
  9. printf("\n4、加载地图");
  10. printf("\n5、退出");
  11. printf("\n**********************************");
  12. printf("\n请选择(1-5):");
  13. scanf("%d",&menu);
  14.  
  15. switch(menu)
  16. {
  17. case :
  18. printf("\n开始游戏了");
  19. break;
  20. case :
  21. printf("\n创建存档了");
  22. break;
  23. case :
  24. printf("\n加载存档了");
  25. break;
  26. case :
  27. printf("\n加载地图了");
  28. break;
  29. case :
  30. printf("\n您确定要退出吗?");
  31. break;
  32. default:
  33. printf("\a输入错误,请重新输入。");
  34. }
  35. }

C语言 第四章 关系、逻辑运算与分支流程控制的更多相关文章

  1. C语言 第三章 关系、逻辑运算与分支流程控制

    目录 一.关系运算 二.逻辑运算 三.运算优先级 四.if语句 4.0.代码块 4.1.单if语句 4.2.if else 4.3.多重if 4.4.?号:号表达式 五.switch语句 一.关系运算 ...

  2. Go语言系列(三)- 基础函数和流程控制

    一.strings和strconv的使用 1. strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头 . 2. strin ...

  3. 第2章 Java基本语法(下): 流程控制--项目(记账本)

    2-5 程序流程控制 2-5-1 顺序结构 2-5-2 分支语句1:if-else结构 案例 class IfTest1{ public static void main(String[] args) ...

  4. 新手小白入门C语言第四章:变量与常量

    C 变量 变量其实只不过是程序可操作的存储区的名称. C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上. 变量的名称可以由字母.数字和 ...

  5. C语言 第四章 分支结构练习

    一.输入语文,数学成绩,根据平均分分3档 #include "stdio.h" void main() { //接受用户输入 float chinese,math,avg; pri ...

  6. C#语言————第四章 深入C#的String类

    *********类型转换**************** Convert与Parse的区别: Convert可以将任何内置类型转换为其他任何内置类型 XX.Parse:只能将字符串转换为XX类型例如 ...

  7. C#语言————第四章 常用Convert类的类型转换方法

    方法 说明Convert.ToInt32() 转换为整型(int 型)Convert.ToStringle() 转换为单精度浮点型(float 型)Convert.ToDouble()  转换为双精度 ...

  8. 大一C语言学习笔记(6)---自省篇--流程控制;break,continue,return间的异同;数组应用到循环语句中需要注意的问题;++i 和 i++的异同等。

    下面是傻瓜博主"曾经"犯过的错和一些心得:        ༼ つ ◕_◕ ༽つ 1.要想流程控制学好,一定要学会化繁为简,举栗子: 三目运算符 (略?略:略)---就是一个数字嘛, ...

  9. c语言学习之第四章

    第四章 第四章主要介绍了分支结构,循环结构的简单使用,还有其他简单的语句结束语句,比如,break,continue.还有gote语句.下面是我学习C语言第四章的一些心得和总结. 1简单的if语句 简 ...

随机推荐

  1. 运用TensorFlow处理简单的NLP问题

    当前无论是学术界还是工业界,深度学习都受到极大的追捧,尤其是在Google开源深度学习平台TensorFlow之后,更是给深度学习火上浇油.目前在开源社区Github上所有开源项目中,TensorFl ...

  2. 【转】stopPropagation, preventDefault 和 return false 的区别

    因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是  stopPropagat ...

  3. Hadoop.2.x_常用端口及定义方法(转)

    组件   节点 默认端口 配置 用途说明 HDFS DataNode 50010 dfs.datanode.address datanode服务端口,用于数据传输 HDFS DataNode 5007 ...

  4. Python之路Day17-jQuery

    本节内容: jQuery 参考:http://jquery.cuishifeng.cn/ 模块  <==>类库 Dom/Bom/JavaScript的类库 版本:1.x   1.12 2. ...

  5. 有关于canvas几个新知识点

    对于canvas的初学者来说,以下几点应该是不知道的知识点: 1.canvas有兼容IE6/7/8的脚本文件 下载地址:https://github.com/arv/explorercanvas 2. ...

  6. java并发编程(十三)经典问题生产者消费者问题

    生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据. 这里实现如下情况的生产--消费模型: 生产者不断交替地生产两组数据&q ...

  7. 2016huasacm暑假集训训练五 C-Common Subsequence

    题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/C 题意:这是一道求字符串的公共子串的最大长度的题目,用dp动态方程即可 if(a[ ...

  8. Page

    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> <met ...

  9. 使div下的图片自适应div的大小

    div img{ max-width:100%; height:auto; } 这里div 要给固定的宽度 开始这里还想了半天 用网上的方法也不行 问老大 又一句话就给我解决了...老大真男神啊!!! ...

  10. Spring缓存框架原理浅谈

    运维在上线,无聊写博客.最近看了下Spring的缓存框架,这里写一下 1.Spring 缓存框架 原理浅谈 2.Spring 缓存框架 注解使用说明 3.Spring 缓存配置 + Ehcache(默 ...