目录
前言:程序设计的基本结构可以由:顺序结构、分支结构、循环结构。顺序结构不在这里讨论了。
1、分支流程
分支结构主要用来进行程序流通得方向控制,那么计算机如何识别流动的方向。主要有接下来我们介绍的运算法进行判断。
关系运算符:
主要有> < == >= <=构成。这种关系运算符的输入结果在C语言中的1表示真、0表示假。
扩展:在python、C++等语言中关系运算符通过布尔值true、false来外显关系的结果,其实质也是1与0的表示。
介绍完关系运算符之后进一步介绍逻辑运算法。
逻辑运算符是&&、||、!
(1>2) && (a++)
首先&&是遇0则结果为0。基于这一特性计算机为了提高运算效率,设置出短路特性。该特性体现在首先执行&&之间的表达式如果结果为真则直接输出结果,对后面的进行短路截断,不参与运算。
基于这一特征,此处会产生许多容易理解错误的地方。例如将逻辑运算符和自增自减运算结合在一起,判断结果。容易对人产生误导。作者在初识这一块也在思维上出现了错误,具体结果在问题1中。
|| 逻辑是遇1则1,也存在截断特性,具体同上。
If、else语句
主要有三种形式:if(条件)、if(条件){} else{}、if (条件1)else if(条件2)else if(条件3)else{}。
main()
{
if ()
{
}
}
双目选择语句
a>b? a : b;
用于快速输入选择符号
Switch语句
首先要注意书写的细节。
Case后面必须跟常量,Switch判断条件必须为整型,其原因在于浮点型在计算机中只能是近似值,在判断case语句的时候必然不能相等。
2、问题反馈
思考问题:“1<2 && 0++”,其值是真是假
问题根源:1、我认为++的优先级高于&&,那么就会先运行0++
2、其次认为0++是一个表达式,在参与&&运算的时候,应该运算的是0++的左值即1
可是又有问题在于:0++的先用后加原理产生矛盾
问题2:
更改过程:将while改为if语句