一、关系运算

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

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

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

4.1、单if语句

#include "stdio.h"
void main()
{
int a=,b=,c=;
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<)
{
printf("负数");
}
else if(a==)
{
printf("零");
}
else if(a>=)
{
printf("大于100的正数");
}
else
{
if(a>= && a<=)
{
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 :
printf("a");
break;
case :
printf("b");
break;
case :
printf("c");
break;
default:
printf("错误:");
if(a>)
{
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<)
{
printf("不及格");
}
else if(mark>= && mark<=)
{
printf("良好");
}
else if(mark>= && mark<=)
{
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 :
printf("\n开始游戏了");
break;
case :
printf("\n创建存档了");
break;
case :
printf("\n加载存档了");
break;
case :
printf("\n加载地图了");
break;
case :
printf("\n您确定要退出吗?");
break;
default:
printf("\a输入错误,请重新输入。");
}
}

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. Pyserial操作串口

    pySerial 介绍 封装了串口通讯模块,支持Linux.Windows.BSD(可能支持所有支持POSIX的操作系统),支持Jython(Java)和IconPython(.NET and Mon ...

  2. XCod5 SVN

    近日开始学习IOS开发, 涉及版本管理问题,老大说要使用SVN, 在Windows系统中使用SVN的经验使得俺以为需要首先安装SVN,然后再配置等等, 殊不知XCode5中已经内置了SVN, 在百度一 ...

  3. PostgreSQL 与 MySQL 相比,优势何在?

    一. PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃.断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统 ...

  4. .NET 新标准介绍

    本文介绍如何使用 .NET 标准,更容易地实现向 .NET Core 迁移.文中会讨论计划包含的 APIs,跨构架兼容性如何工作以及这对 .NET Core 意味着什么. 如果你对细节感兴趣,这篇文章 ...

  5. TODO:小程序的春天你想做什么

    TODO:小程序的春天你想做什么 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 初步了解小程序的特点 导航明确,来去自如 统一稳定, 视觉规范 ...

  6. 调试的时候 line not available!

    手贱, 不小心修改了一个地方,后面调试代码的时候,总感觉不对.出现: line not available, 总是到不了源码里面,反复部署了N次还是一样, 非常郁闷,... 搞了一两个小时后,后面醒悟 ...

  7. java反射 之 反射基础

    一.反射 反射:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ...

  8. thinphp框架的项目svn重新检出后的必备配置

    刚刚试着去了解thinkphp框架,在这里做一些笔记,后续有新的总结会更新到这里,如有错误与遗漏,望大家指正. 用thinkphp框架的项目,在用svn重新检出之后,需要进行一些基本配置,方可在本地打 ...

  9. Android_安卓为按钮控件绑定事件的五种方式

    一.写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick ...

  10. SSISDB5:Parameter

    Parameter 是Package 提供给外界的接口,通过传递不同的Parameter value,能够动态控制 Package 执行不同的Task或container,产生不同的结果. 一,Par ...