一、关系运算

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

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

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

运算结果:

二、逻辑运算

!(逻辑非) 
运算规则:!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行代码。

#include "stdio.h"
void main()
{
//代码块1
{
int a=1;
printf("\n %d",a);
} //代码块2
{
int a=2;
printf("\n %d",a);
} }

4.1、单if语句

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

if(条件表达式)
{
条件表达式为真时要执行的语句块(分支一语句);

其语义是:
如果表达式的值为真,则执行其后的分支一语句, 否则不执行该分支一语句。

4.2、if else

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

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a,b,c,max;
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
//如果条件成立
if(a>b)
{
max=a;
}
else //如果条件不成立
{
max=b;
} if(c>max){ //有代码块的地方,总是会执行一句
max=c;
} printf("最大值是:%d",max);
}

4.3、多重if

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a;
scanf("%d",&a); if(a<0)
{
printf("负数");
}
else if(a==0)
{
printf("零");
}
else if(a>=100)
{
printf("大于100的正数");
}
else
{
if(a>=1 && a<=50)
{
printf("1-50");
}
else
{
printf("51-99");
}
} printf("\n程序完成"); }

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

4.4、?号:号表达式

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a,b,c;
scanf("%d",&a);
scanf("%d",&b); //a>10?printf("大于10"):printf("小于等于10");
c=(a>b)?(a++):(++b); printf("%d",c);
}

五、switch语句

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a;
scanf("%d",&a); switch(a)
{
case 1:
printf("a");
break;
case 2:
printf("b");
break;
case 3:
printf("c");
break;
default:
printf("错误:");
if(a>3)
{
printf("数字太大。");
}
else
{
printf("数字太小");
}
} }

练习:

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

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

switch练习2:

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

年:2008

月:2

29

年:2009

月:3

31

答案:

#include "stdio.h"
void main()
{
float mark; printf("请输入分数:");
scanf("%f",&mark); if(mark<60)
{
printf("不及格");
}
else if(mark>=60 && mark<=70)
{
printf("良好");
}
else if(mark>=71 && mark<=85)
{
printf("优秀");
}
else
{
printf("卓越");
} }
#include "stdio.h"
void main()
{
int menu;
printf("\n**********************************");
printf("\n1、开始游戏");
printf("\n2、创建存档");
printf("\n3、加载存档");
printf("\n4、加载地图");
printf("\n5、退出");
printf("\n**********************************");
printf("\n请选择(1-5):");
scanf("%d",&menu); switch(menu)
{
case 1:
printf("\n开始游戏了");
break;
case 2:
printf("\n创建存档了");
break;
case 3:
printf("\n加载存档了");
break;
case 4:
printf("\n加载地图了");
break;
case 5:
printf("\n您确定要退出吗?");
break;
default:
printf("\a输入错误,请重新输入。");
}
}

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

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

    一.关系运算 若干表达式用关系运算符连接而成,就构成关系表达式. 关系表达式中,表达式成立,其值为1(真):表达式不成立,其值为0(假).其他表达式中,其结果如果是非0则为真,结果为0则为假. 关系运 ...

  2. R语言学习 第四篇:函数和流程控制

    变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...

  3. Go 从入门到精通(三)字符串,时间,流程控制,函数

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

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

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

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

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

  6. 【JAVA今法修真】 第三章 关系非关系 redis法器

    您好,我是南橘,万法仙门的掌门,刚刚从九州世界穿越到地球,因为时空乱流的影响导致我的法力全失,现在不得不通过这个平台向广大修真天才们借去力量.你们的每一个点赞,每一个关注都是让我回到九州世界的助力,兄 ...

  7. 新手小白入门C语言第三章:关于数据类型

    C 语言包含的数据类型 1.整型 整型分为整形常量和整形变量,常量就是我们平时所看到的准确的数字,例如:1.20.333等等,变量则按我的理解是我像内存去申请一个存储空间,告诉内存空间我申请了这个地方 ...

  8. C语言 第三章 基础编程测试与练习

    1.屏幕上输出:This is a C program 2.输入两个整数,求两个数的和,如下所示:请输入第1个数:5请输入第2个数:3 3加5的和是8 3.完成华氏温度与摄氏温度间的转换,如下所示:请 ...

  9. C#语言————第三章 使用属性升级MyBank

    ********常见的访问修饰符*********: public :公共的,可以在其他类中访问 private:私有的,只有在本类里可以使用,其他的类无权访问 类的默认访问修饰符 internal( ...

随机推荐

  1. 最接近原生APP体验的高性能前端框架——MUI

      前  言 MUI有三大特点: 轻量 追求性能体验,是我们开始启动MUI项目的首要目标,轻量必然是重要特征: MUI不依赖任何第三方JS库,压缩后的JS和CSS文件仅有100+K和60+K 原生UI ...

  2. ubuntu命令查询版本和内核版本

    1.查看ubuntu版本号: 方法一: cat  /etc/issue 返回结果: Ubuntu 6.06.2 LTS \n \l   方法二: sudo lsb_release -a  返回结果: ...

  3. java web Servlet学习笔记-2 请求重定向和请求转发的区别

    请求转发与请求重定向的区别 请求重定向和转发 1.请求重定向:浏览器的行为(通过响应对象HttpServletResponse来执行) 特点:可以重新定向访问其他Web应用下的资源 浏览器发出了2次请 ...

  4. HTML的有序列表

    针对HTML的有序列表,由于平常使用的不是很多,刚开始使用的时候也是有遇到一些坑,有几个小问题: 1.li的宽度不能设置为100%,这样的话就没办法看到前面的序号 2.如果设置li的颜色字体大小,前面 ...

  5. Socket简单实现数据交互及上传

    声明:本文为原创,如需转载请说明出处:http://www.cnblogs.com/gudu1/p/7669175.html 首先为什么要写这个呢?因为在几个月之前我还使用Socket做一个小项目,而 ...

  6. 初学者易上手的SSH-struts2 02Action获取表单数据-通配符

    在上一章中,我们已经搭建好了struts2的一个开发环境,那么这一章就来做一个简单的登录功能,以及介绍和使用struts2里面一个重要的东西-通配符. 第一步,在WebContent下面新建一个log ...

  7. SQL server 数据库备份大

    首先简单的介绍一下Sql server 备份的类型有: 1:完整备份(所有的数据文件和部分的事务日志文件) 2:差异备份(最后一次完成备份后数据库改变的部分) 3:文件和文件组备份(对指定的文件和文件 ...

  8. windows下LINUX模拟终端Cypwin以及Vim的配置使用

    Cypwin的安装 从官网下载相应版本后,直接安装. 官网地址:Cypwin 安装过程中可以选择相应的Packages,我们需要安装的Vim就需要在这一步中选择相应的包. Cypwin的使用 纯命令行 ...

  9. win10 uwp DataContext

    本文告诉大家DataContext的多种绑法. 适合于WPF的绑定和UWP的绑定. 我告诉大家很多个方法,所有的方法都有自己的优点和缺点,可以依靠自己喜欢的用法使用.当然,可以在新手面前秀下,一个页面 ...

  10. 整理一批 国内外优秀设计团队 & 设计相关网站

    设计做不好,因为看得少!这里精心整理了一批国内外优秀设计团队的官网,以及同设计相关的网站.每个网站,我都浏览了一下,确保里面真的是有干货,并且保持一定的频率正常更新. [腾讯] 腾讯社交用户体验设计 ...