运算符
算术运算符
算数运算符包括:+ , - , * , / , () , = , %
注: = 叫做赋值, %叫做取余
赋值是将右侧的数据赋值给左侧的变量
算术运算符规则:
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 大括号语句
}
今天的分享到此为止!!!下次再见!