一、流程分类:
1.顺序结构
2.分支结构
3.循环结构
二、逻辑表达式
1.关系运算符:
表达式只有两种值:真(1)、假(0)
运算符 | 含义 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
示例:
5 > 9 //假
5 == 0 //假
5 != 0 //真
2. 逻辑运算符:
运算符 | 含义 |
&& | 逻辑与(有0则0) |
|| | 逻辑或(有1则1) |
! | 逻辑非(取反) |
注意事项:
逻辑与和逻辑或有截断特性:
逻辑与:左边为假,右边将不进行计算
逻辑或:左边为真,右边 将不进行计算
示例:(也可自己打出来体会一下)
3.三目运算符:
- 表达式: 逻辑表达式 ? 表达式1 : 表达式2 ;
- 注意事项:计算方式由右至左计算(单目也是如此)
- 示例:x > y ? x : y > z ? y > z ;
所以此式子先计算括号内的逻辑表达式:x > y ? x : (y > z ? y > z ;)
- 小试牛刀:输入三个数,判断出最大值
三、分支结构
1、 if 分支:
(1) 简单分支:
基本结构:
if (表达式)
{
语句块1;
}
else
{
语句块2;
}
- 注意事项:
if后面必须加表达式,else后面不能加表达式
if可以脱离else单独使用,但是else不能脱离if单独使用
- 实现数据交换:利用第三个变量提供空间
示例:从终端接收两个数,如果第一个数大于第二个数则打印第一个数如果第一个数不大于第二个数,两者数据交换打印第一个数。
初始化是这个流程,共同打印输出同一个目的,可以根据实际需求简化if语句省略else。
简化版(省略了else):
(2)阶梯分支:
基本结构:
if (表达式1)
{
语句块1;
}
else if (表达式2)
{
语句块2;
}
else if (表达式3)
{
语句块3;
}
else
{
语句块4;
}
- 与简单分支差不多,要求一致。不同的是多加了可供判断的语句。
- 小试牛刀:写一个分数等级判断。90-100优秀A、80-89良好B、60-79及格C、0-59不及格D;
2、switch 分支
(1)基础结构:
switch(整型表达式)
{
case 常量1;语句块1;break;
case 常量2;语句块2;break;
case 常量3;语句块3;break;
case 常量4;语句块4;break;
default :
语句块5;
}
- 小试牛刀:
(2)套嵌结构:
switch(整型表达式)
{
case 常量1:
switch{
case 常量2:
语句块1;
break;
default:
语句块3
};break;
}
注意事项:红色字没有的话,内层switch满足条件,外层switch还是会继续向下执行。
四、循环结构
1.while循环
(1)基本形式:
while (表达式)
{
语句块;
}
适用于:重复执行某段代码,有规律的循环。
- 小试牛刀:使用while循环实现0-100的求和
(2)死循环:
while (1)
{
语句块;
}
程序会一直一直执行下去
2、do... while :
先执行再判断
基本形式:
do {
语句块;
} while (表达式);
3、for循环:
基本形式:
for (A ; B ; C)
{
D;
}
A:在循环开始之前首先执行,初始条件
B:执行for循环的条件
C:每次循环完必执行的代码
D:满足循环条件可以输出的语句块
示例:鸡兔同笼问题,笼子里共有50只,有140只脚,请打印出鸡兔的个数。
个人注解:
for循环的方法是穷举法。我们可以设置鸡或者兔为一个变量(i),设置好循环条件(i <= 50)。让计算机一个个去举例子尝试。利用 if 语句设置好鸡兔个数与脚之间满足的关系条件(140 == 2*i +(50-i)*4)
//学到这里,对我来说也算是有一点点的里程碑。印象中很多困难的开始就是从鸡兔同笼开始的。很荣幸也很开心,迈过这门坎去击破更大的boss。