1.分支语句和循环语句 ①if...else语句

if(5 == num)//常量与变量作比较时,将常量写在左边,便于发现bug
	printf("hehe");

②switch语句

switch(整型表达式)//必须是整型表达式
{
case 整型常量表达式://case必须是整型常量表达式
	语句;
}

注:在每个switch语句中都放一条default语句是个好习惯,甚至可以在后面再加一个break。 ③while语句

while(i<=10)
{
	if(5 == i)
		continue;//死循环
	printf("%d", i);
	i++;
}

总结: break在循环中的作用:只要遇到break,就停止后期所有循环,直接终止循环。while中的break是用于永久终止循环。 continue在循环中的作用:用于终止本次循环,也就是本次循环中的continue后的代码不会再执行,而是跳转到while语句的判断部分,进行下一次循环的入口判断。

int ch = 0;
	//输入CTRL+z可以获取EOF
	//EOF-end of file -> -1
	while ((ch = getchar()) != EOF)
	{
		putchar(ch);
	}

while循环代码示例github地址:https://github.com/Jasonzhouxin/C-Learning.git ④for语句 a.不可在循环体内修改循环变量,防止for循环失去控制

int i = 0;
for(i=1; i<10; i++)
{
	if(i = 5)
		printf("haha\n");
	printf("hehe\n");
}
//输出结果:程序进入死循环

b.建议for循环循环控制变量的取值采用“前闭后开区间”写法 eg:for(i=0; i<10; i++) c.for循环初始化、调整、判断都可以省略,但for循环的判断部分如果被省略,那判断条件就是恒为正。

int main()
{
	for(::)
	{
		printf("hehe\n");
	}
	return 0;
}
//执行结果:死循环
int i = 0;
int j = 0;
for(i=0: i<10; i++)
{
	for(j=0; j<10; j++)
	{
		printf("hehe\n");
	}
}
//输出结果:100个“hehe”

for(: i<10; i++)
{
	for(; j<10; j++)//j的初始化值被省略,经过内循环后j=10,跳出循环
	{
		printf("hehe\n");
	}
}
//输出结果:10个“hehe”

d.两个循环变量的for循环

int x,y;
for(x=0;y=0; x<2 && y<5; x++; y++)
{
	printf("hehe\n");
}
//输出结果:两个“hehe”

test:

int i = 0;
int k = 0;

for(i=0, k=0; k=0; i++, k++)
	k++;
//for循环循环0次,因为判断语句k=0是将0赋值给k,判断为假

⑤goto语句 一般情况尽量避免使用goto语句,容易打乱程序原有逻辑。 goto语句真正适合的场景如下:

for()
	for()
	{
		for()
		{
			if(disaster)
				goto error;
		}
	}
...
error:
	if(disaster)
		//处理错误情况