Bootstrap

三、分支和循环

一、if语句

1.1 if

  • 语法形式 :
if (表达式)
    语句;
  • 表达式成立为,则语句执行。表达式不成立为,语句不执行。
    注 : c语言中,0为假,非0为真。

1.2 else

  • 语法形式 :
if (表达式)
   语句1else
   语句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
非00
01

4.2逻辑与运算符

  • 一假则假
aba&&b
非0非01
非000
0非00
000

4.3逻辑或运算符

  • 一真则真
aba 或b
非0非01
非001
0非01
000

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;
}

以上是我上课笔记,如有错误还望给位朋友批评指正,谢谢

;