运算符的使用和 if 分支结构

运算符

算术运算符

算数运算符包括:+ ,  -  ,  *  ,  /  ,  ()  ,  =  ,  %

注: = 叫做赋值, %叫做取余

赋值是将右侧的数据赋值给左侧的变量

算术运算符规则:

        1.先乘除后加减

        2.有小括号优先处理小括号以内的内容

        3. 整个表达式顺序是从左至右

        4.除数不能为0  

增强版算术运算符
// += -= *= /= %=
int num1 = 10;
int num2 = 20;

num1 = num1 + num2; <==> num1 += num2;
// num1 += num2 num1 与 num2 相加的和重新赋值给 num1
//同理 -=,*=, /=, %= 与 += 一样
自增自减运算符

 ++  or   --

语法操作:

自增自减运算符有且只能操作变量,不可以操作常量

自增操作对于操作的变量是内部数据 += 1,自减运算符对于操作的变量是内部数据 -= 1

在代码中使用 += 1 和 -= 1 替换自增自减运算符。增强代码的阅读性

语法要求:

int num = 1;
printf("%d\n",num++);

自增自减运算符在变量之后,首先取值变量数据参与代码运行,取值之后执行自增自减操作

int num = 1;
printf("%d\n",++num)

自增自减运算符在变量之前,首先执行自增自减操作,执行之后取值变量数据参与代码运行

自增自减运算符在变量之前,首先执行自增自减操作,执行之后取值变量数据参与代码运行

【使用建议】

自增自减运算符单独成行,建议使用+=1,-=1代替

关系运算符

关系运算符包括 >  <  >=  <=  !=   ==

以下是关系运算符的使用

#include <stdio.h>

int main(int argc, char * argv[])
{
	/*
	* ret ==> result 结果,关系运算符对外结果是 0 or 1
	* 使用 int 类型在 C 语言满足数据存储要求
	*/
	int ret = 10 > 5; // ret = 1;
	printf("ret = %d\n", ret);
	
	ret = 10 < 5; // ret = 0;
	printf("ret = %d\n", ret);

	ret = 10 >= 10; // ret = 1;
	printf("ret = %d\n", ret);

	ret = 10 <= 15; // ret = 1;
	printf("ret = %d\n", ret);

	ret = 10 != 5; // ret = 1;
	printf("ret = %d\n", ret);
	
	ret = 10 == 5; // ret = 0;
	printf("ret = %d\n", ret);

	return 0;
}
逻辑运算符

逻辑与,逻辑或和逻辑非,逻辑运算符对外的结果是真假关系 0 or 1

逻辑与 &&: 同真为真,有假【即】假

逻辑或 ||: 有真【即】真,同假为假

逻辑非 ! : 真变假假变真

int ret = 10 > 5 && 5 > 1; // ret = 1
	printf("ret : %d\n", ret);

	ret = 10 > 15 && 5 > 1; // ret = 0
	printf("ret : %d\n", ret);
	
	ret = 10 > 15 || 5 > 1; // ret = 1
	printf("ret : %d\n", ret);

	ret = 10 > 15 || 5 > 10; // ret = 0
	printf("ret : %d\n", ret);

	ret = !(10 > 15); // ret = 1
	printf("ret : %d\n", ret);
	
	ret = !(10 > 5) || 5 > 1; // ret = 1
	printf("ret : %d\n", ret);
逻辑运算符短路原则

利用逻辑运算符短路原则优化条件排列和选择。需要考虑条件的权重,优先级...

int num = 5;
int ret = 5 > 10 && ++num > 5;
ret = ?;//0
num = ?;//5
/*
在逻辑与 && 表达式中,出现了第一个 假条件(0 or false),
整个逻辑与表达式结果已经明确为假(0 or false),从第一个
假条件开始,之后的内容不再执行。
*/
int num = 10;

int ret = 10 > 5 || ++num > 5;

ret = ?; 1
num = ?; 10
/*
	在逻辑或 || 表达式中,出现了一个真条件(非0 or true),
    整个逻辑或表达式结果已经明确为真(非0 or true), 从真
    条件开始之后的内容不再执行,同样是提升计算机的运算逻辑效率!
*/

if 分支结构

if 分支结构概述

1.if 分支结构

2.if else 分支结构

3.if else-if 分支结构

if 分支结构语法格式
if (/* 条件判断,要求结果提供真假关系,C语言默认 0 假 1 真 */) 
{
    // 如果 if 之后小括号内容满足条件,执行大括号内容
}

int num = 10;
if (num < 15)
{
    printf ("%s\n","night");
}
if else分支结构语法格式
if (/* 条件判断,要求结果提供真假关系,C语言默认 0 假 1 真 */)
{
    // 满足条件执行内容
}
else
{
    // 不满足条件执行内容
}
if else if 分支结构
if (/* 条件匹配1 */)
{
    // 满足条件 1 执行内容,不再匹配其他条件
}
else if (/* 条件匹配2 */)
{
    // 满足条件 2 执行内容,不再匹配其他条件 
}
else if (/* 条件匹配3 */)
{
    // 满足条件 3 执行内容,不再匹配其他条件   
}
else
{
    // 以上所有条件都没有匹配,执行 else 大括号语句
}

今天的分享到此为止!!!下次再见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iot_Ming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值