一 if 语句:
基本结构:
if(表达式)
{
语句1;//如果表达式为“真”,执行语句1
}
else
{
语句2;//如果表达式为“假”,执行语句2
}
嵌套
基本结构只适用于两条支路,当支路存在三条或更多时
类型1:
if()
{
if()
{
}
}
else
{
}
类型2:
if()
{
}
else if()
{
}
悬空else
else与最近的if配对
例
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
其结果为:haha,但这是错的

其真实结果为什么也不输出
将其对齐后则可看清其与那个if对齐:
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
{
printf("hehe\n");
}
else
{
printf("haha\n");
}
}
return 0;
}
可见写好看的代码也很重要
二 关系操作符
用于比较的表达式
>:大于
<:小于
>=:大于等于
<=:小于等于
==:等于
!=:不等于
注意:字符的大小比较
条件操作符
三目操作符
表达式1?表达式2:表达式3
若表达式1为真,执行2
若表达式1为假,执行3
类似于if语句
if(a>5)
{
b = 3;
}
else 等于 a>5?b=3:b=-3
{
b = -3;
}
三 逻辑操作符
&&:逻辑与操作符
并且(同时满足)
| a | b | a&&b |
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
(1为真 0为假)
||:逻辑或操作符
或者(至少一个满足)
| a | b | a||b |
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
!:逻辑取反操作符
| a | !a |
| 1 | 0 |
| 0 | 1 |
四 switch语句
属于分支语句,是一种特殊的if...else结构,用于判断条件有多个的情况。
基础结构
switch(expression)
{
case value1:statemen;
case velue2:statement;
...
default: statement;
}
根据表达式(expression)不同的值,执行相应的case分支(分别对应value1、value2......),如果找不到对应的值,就执行default。
注意:expresstion必须是整形表达式 value必须是整形表达式。
加入break;改进代码
示例:判断一个数除3后余的数

问题:7%3=1 可出现了 “余数是2”
分析:算出对应余数“1”后,对应case 1语句,运行后自动执行下一行语句“printf(“余数是2”)”
改进:增加break;(相当于暂停,后续会讲)

巧妙运用break
例:输入星期,判断是工作日还是假期

五 while
属于循环语句,类似于if语句,只不过while循环中,若表达式为真则进入循环,若为假,则离开循环。
基本结构:
while(表达式)
{
语句;
}
应用:
练习1:打印1~10的值

练习2:输入一个正数,逆序打印每一位
例:输入1234 输出4 3 2 1

分析:1234%10 = 4
1234/10=123(整数类型,忽略小数点)
以此类推(类似循环)
六 for循环
属于循环结构,用的最多
基本结构
for(表达式1;表达式2;表达式3)
{
语句;
}
表达式1:循环变量的体初始化
表达式2:循环结束条件的判断
表达式3:循环变量的调整
其三部分可以省略不写 如:for( ; ; ),但是判断部分被省略,判断恒为真,进入死循环
应用
练习1:打印1~10的值

练习2:计算1~100之间计算2的倍数的数字之和
分析:(1)产生1~100的数字——>for循环
(2)2的倍数——>if语句
(3)求和sum = sum+i

改进:直接生成2的倍数
for(i = 2;i<=100;i+=2)

七 do-while
循环结构,使用最少,先执行语句,在判断循不循环,即其循环体至少循环一次
基本结构
do
{
语句;
}
while(表达式)
应用:
练习1:打印1~10的值

练习2:输入正整数,计算整数是几位数?
例:输入1234 输出4
分析:不管输入几,位数至少为1,符合do while循环体至少执行一次的条件

八 break和continue语句
在循环执行的时候,如果发生某些状况,并需要提前终止循环的情况,就需要break或continue
break
用于永久的终止循环,表示直接跳出循环,继续往后运行。
例:

if i=5,break打破循环
continue
用于跳过本循环,并进入下一循环。
问题:经过continue后本应打印“1 2 3 4 6 7 8 9 10”,结果只打印了“1 2 3 4”
分析:i=4经过一个i++后i = 5,i=5时,执行continue,跳出循环(包括i++),所以进入下一循环时,i依旧等于5,进入死循环
改进:

九 循环的嵌套
找出1~100之间的素数,并打印出来(素数:只能被1和本身整除的数字)
分析:1.产生1~100
2.判断是否为素数
(1)使用2~i-1之间的数组去除i
for(j=2;j<=1-1;j++)

十 goto语句
循环语句,可实现在同一个函数内跳转到设置好的标点处。
基本结构
……:
表达式;
goto……
例:
注意:goto语句存在风险不建议使用

1966

被折叠的 条评论
为什么被折叠?



