1.程序的有效性
1.1写程序的过程中需要注意程序的有效性和可靠性,即需要考虑多种复杂的情况
2.scanf
2.1 int a = scanf("%d%d%d",&a1,&a2,&a3)
将输入的三组数据分别存入缓冲区,每两组数据之间用分隔符(如空格、tab或者非法字符分隔开),按下回车,缓冲区的数据被送入与%d类型匹配,匹配成功后,将输入的数据以格式化的形式放入对应地址的内存中,最后scanf返回1,若三个%d都匹配成功,返回3
3.关系运算
3.1 关系运算符的分类
3.2 用法
1 > 2 //关系运算表达式
关系运算的结果: 真1 假 0
4. 逻辑运算
4.1 逻辑运算符的分类
与(且)都要满足 && 一假则假 (从左至右运算,具有截断特性,即左边为假,整体为假,右边不进行运算处理)
或(满足一个即可) || 一真则真 (从左至右运算,具有截断特性,即左边为真,整体为真,右边不进行运算处理)
非 !=
4.2 用法
逻辑运算用来组合多个关系运算
5. if 语句
5.1 形式一:if
5.1.1 基本结构
if (表达式) //表达式 做判断的条件
{
语句;
} //复合语句
5.1.2 含义
首先,判断 "表达式"是否为真
真
执行 语句
语句执行完,表示if语句结束,程序继续往下
假
表示if语句结束,程序继续往下
5.2 形式二:if--else
5.2.1 基本结构
if (表达式)
{
语句1;
}else
{
语句2;
}
5.2.2 含义
首先 判断"表达式"是否为真
真:
执行 ”语句1"
语句1 执行完,表示if语句结束,程序继续往下
假:
执行 ”语句2"
语句2 执行完,表示if语句结束,程序继续往下
5.3 形式三:if-else-if-else-if-else
5.3.1 基本结构
if (表达式1) //注意: 不能加分号
{
语句1;
}else if (表达式2) //注意: 不能加分号
{
语句2;
}else if (表达式3) //注意: 不能加分号
{
语句3;
}else if (表达式4) //注意: 不能加分号
{
语句4;
}else
{
语句5;
}
5.3.2 含义
判断 "表达式1"是否为真
真 执行 "语句1" 语句1 执行完,表示if语句结束,程序继续往下
假
判断"表达式2" 是否为真
真 执行 "语句2" 语句2 执行完,表示if语句结束,程序继续往下
假
判断"表达式3" 是否为真
真 执行 "语句3" 语句3 执行完,表示if语句结束,程序继续往下
假
...
判断"表达式n" 是否为真
真 执行 "语句n" 语句n 执行完,表示if语句结束,程序继续往下
假
执行 else后面语句 ,执行完,程序继续往下
注意:
1.不存在单独的else语句 ,else出现一定有一个if与之对应,即if与else成对出现
2.else 与 if匹配规则
从代码最内层开始匹配
else 与程序上步中距离最近的一个if进行匹配组合
6. 条件运算
6.1 基本结构和含义
表达式1 ? 表达式2 : 表达式3;
判断问一问 表达式1是真还是假
真 ,执行 表达式2
假 ,执行 表达式3
7. switch 语句
7.1 基本结构
switch(表达式) //表达式
{
case 常量表达式1: //
语句;
break;
case 常量表达式2:
语句;
break;
case 常量表达式3:
语句;
break;
default: //除上述case之后所有常量表达式之外的其他任意情况
语句;
break;
}
7.2 含义
求解switch后的 "表达式"
根据表达式结果,匹配case后的值,不同case之间并列关系非从上到下的顺序关系
匹配成功则执行对应case下的语句
语句结束的标志是遇到了break 或者是switch 右} (花括号)
注意:
1.switch 后表达式需要是一个整型表达式
2.case后面是常量表达式,不能出现变量