分支和循环语句

分支和循环语句

分支语句

switch

switch 允许嵌套使用

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
int main()
{
    int n = 1;
	int m =  2;
	switch (n)
	{
	case 1:m++;
	case 2:n++;
		case 3:
			switch (n)
			{     //switch 允许嵌套使用
			case 1:n++;
			case 2:m++; n++; break;//此处的break仅仅是跳出对应的switch语句
			}
		case 4:m++; break;
		default:
			break;

	}
	printf("m=%d\nn=%d\n", m, n);
system("pause");
return 0;
}

在这里插入图片描述

default 语句
匹配那些不能匹配到case 的语句。

对于if语句不做赘述
0表示假 非0表示真 真则执行语句
else 是与紧邻的if匹配

循环语句

for 循环语句

关于for语句后面加了分号
加分号,表示这个循环是空语句,除了执行for()括号里的,什么都不干,然后就执行下一行。

不加分号,那for循环后面的printf语句就是for循环的一部分,跟着for一起执行,但前提是for循环里的条件要满足。

分号代表语句结束。

例如:
for(i=0;i<100;i++);

就等于:

for(i=0;i<100;i++{}

一个很坑人的代码

int main()
{
	int i = 0; int k = 0;
	for (i = 0, k = 0; k = 0; i++, k++)
		k++;
	return 0;
}   //一次循环都不执行

for (i = 0, k = 0; k = 0; i++, k++) 注意那里是赋值语句k=0不是判断
==一个等号赋值语句0 为假因此一次循环都不执行 ==

① 不可在for循环内修改循环变量,防止for循环失去控制。

② 建议for语句的循环控制变量的取值采取半开半闭的写法

while 循环语句

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
     int i = 1;
	while (i <= 10)
	{
		printf("%d  ", i);
		i++;
		if (5 == i) 
			break;
	}
	system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 1;
	while (i <= 10)
	{
		if (5 == i)
			continue;    //死循环
		printf("%d  ", i);     
		i++;
	}
	system("pause");
return 0;
}

两个输出的结果均为1-4
不同的是第二个是一个死循环打印4后 执行i++ i=5
程序到if (5 == i);
continue;
i一直为5

continue 直接跳到了判断部分

在此与for的continue 进行一个对比

1.for的continue 结束本次循环 跳到调整部分 先调整再判断
而while的continue 直接跳到了判断部分

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
	for (i = 1; i <= 10; i++)

	{    if (5 == i)
	    continue;
		printf("%d\n", i);
	}
	system("pause");
return 0;
}

在这里插入图片描述
2.for与while 相比较三个表达式在一起 更加方便看比较常用。
不会因为循环部分过长导致判断部分和条件调整部分而隔开。

发布了22 篇原创文章 · 获赞 5 · 访问量 3213

猜你喜欢

转载自blog.csdn.net/weixin_45271990/article/details/104238824