一、if语句
1.1 if
- 语法形式 :
if (表达式)
语句;
- 表达式成立为真,则语句执行。表达式不成立为假,语句不执行。
注 : c语言中,0为假,非0为真。
1.2 else
- 语法形式 :
if (表达式)
语句1;
else
语句2;
1.3分支中包含多条语句
- 在if和else语句中,默认都只能控制一条语句。
- 如果if语句中想要同时控制两条语句,要使用 { } 将代码括起来,else后面也可以跟 上大括号 { } 。
if(a>0)
{
printf ("正数\n");
printf ("大于0\n");
}
1.4 嵌套if
- 在 if else 语句中,else可以和另外一个if语句连用,例 :
if (a == 0)
printf ("输入的数字为0\n");
else if (a > 0)
printf ("输入的数字为正数\n");
else
printf ("输入的数字为负数\n");
1.5 悬空else问题
- 如果有多个 if 和 else ,else 总是跟最接近的 if 匹配。
二、关系操作符
- c语言中用于比较的表达式,称为 “关系操作符” ,里面使用的运算符叫 “关系运算符”。
符号 | 名称 |
---|---|
> | 大于运算符 |
< | 小于运算符 |
>= | 大于等于运算符 |
<= | 小于等于运算符 |
== | 相等运算符 |
!= | 不等于运算符 |
- 表达式通常返回 0 或 1 。
- 多个关系运算符不宜连用。
- 错误写法: x<y<z 在编译器中(x<y)<z
- 正确写法: x<y && y<z
三、条件运算符
-
条件运算符也叫三目操作符
表达式1 ?表达式2 :表达式3
- 如果表达式1的值为真,表达式2的值是整个表达式的结果。
- 如果表达式1的值为假,则表达式3的值为整个表达式的值。
四、逻辑操作符 : && , || ,!
- !逻辑取反运算符 (改变单个表达式的真假)。
- && 逻辑与运算符, 就是并且的意思,(两侧的表达式都为真则真,否则为假)。
- || 逻辑或运算符,就是或者的意思,(两侧至少有一个表达式为真则真,否则为假)。
4.1逻辑取反运算符
- 取反
a | !a |
---|---|
非0 | 0 |
0 | 1 |
4.2逻辑与运算符
- 一假则假
a | b | a&&b |
---|---|---|
非0 | 非0 | 1 |
非0 | 0 | 0 |
0 | 非0 | 0 |
0 | 0 | 0 |
4.3逻辑或运算符
- 一真则真
a | b | a 或b |
---|---|---|
非0 | 非0 | 1 |
非0 | 0 | 1 |
0 | 非0 | 1 |
0 | 0 | 0 |
4.4 短路
- c语言逻辑运算符还有一个特点 :它总是先对左侧表达式求值,再对右侧表达式求值,这个顺序是保证的。
- 如果左边的表达式满足逻辑运算符的条件就不再对右的表达式求值,这种情况称为:“短路”。
- 根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进行计算的运算称为 “短路求值”。
五、switch 语句
switch(expression)
{
case value 1 :statement
case value 2 :statement
default : statement
}
- switch 后的 expression 必须是整型表达式。
- case 后的值必须是整型常量表达式。
- case 和后面的数字之间必须有空格。
- 每一个 case 语句中的代码执行完成后,要加上 break, 才能跳出 switch 语句。
- break 也 不是每个 case 语句中都得有。
5.1 switch语句中的default
- switch 语句中的表达式的值无法匹配代码中的 case 语句的时候, 这时就得加入default 字句。
5.2 switch 语句中的 case 和 default 的顺序
- switch语句中的 case 和 default 没有顺序要求, 要求满足实际要求就可以,通常default子句放到最后处理。
六、 while 循环
while (表达式)
语句;
6.1 while 语句的执行流程
七、for 循环
for (表达式1 ;表达式2 ;表达式3)
语句;
- 表达式1 : 用于循环变量的初始化。
- 表达式2 : 用于循环结束条件的判断。
- 表达式3 :用于循环变量的调整。
for循环的初始化,判断,调整三部分都可以省略,如判断部分省略, 那么 判断恒为真, 就为死循环。
7.1 for 循环的执行流程
八、do while 循环
do
语句;
while (表达式);
- 先进入循环体,执行循环语句,然后执行while后的判断表达式。
8.1 do while 循环的执行流程
九、break 和 continue 语句
- break的作用是用于永久的终止循环, 只要break执行,直接会跳出循环,继续往后执行。
- continue 的作用是跳出本次循环中continue后边的代码。
十、循环的嵌套
《素数求解的n种境界》
练习 :
找出100~200之间的素数。
int main ()
{
int i = 0;
for(i = 100;i <= 200; i++)//产生100 ~200的数
{
int j = 0;
int a = 1;//假设它是素数
for (j = 2; j < i;j++)
{
if (i %j == 0)//i求余j等于0,则它能被1和它本身以外的数整除
{
a = 0;
break;
}
}
if(a = 1)
{
printf ("%d",i);
}
}
return 0;
}
十一、goto 语句
- c语言提供了一种非常的语法,就是 goto 语句和跳转标号,goto 语句可以实现在同一个函数内跳转到设置好的标号处。
#include <stdio.h>
int main()
{
printf("hehe\n");
goto next;
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
完
以上是我上课笔记,如有错误还望给位朋友批评指正,谢谢