一、分支语句(循环结构)

  • If(可以单分支也可多分支)

多分支:

If(表达式1)

  语句1;//if下面有多条语句要用大括号

else if(表达式2)

语句2;

Else

语句3;

注意:else会与离它最近的未匹配的if去匹配,跟与谁对齐无关

int main()
{
	int ret = 0;
	int ch = 0;
	char password[20] = {0};
	printf("请输入密码:>");
	scanf("%s", password);//scanf 输入之后会放到缓冲区,等待数字被读取,此时空格前的部分被放到password数组里
	//scanf 函数只读取空格前面的内容
	
	while((ch = getchar()) != '\n')
	{
		;
	}//一直读取直到出现回车
	
//	getchar();//读取一下,但是每次只能读取一个字符
	printf("请确认(Y/N):>");//最后剩余一个"\n",如果不做读取处理会直接被printf函数给读取
	
	ret = getchar();
	
	if(ret == 'Y')
	{
		printf("确认成功\n");
	}
	else
	{
		printf("放弃确认\n");
	}
	return 0;
}
//只输出数字字符
//continue 的作用

int main()
{
	int ch = 0;
	while((ch = getchar()) != EOF)
	{
		
		if(ch < '0' || ch > '9')//ASCII码值‘0’和‘9’之间的字符
			continue;
		putchar(ch);
	}
	return 0;
}

 

  • Switch多分支语句

 switch(整型表达项)

{

语句项;

}

//switch语句实现多分支

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch(day)
	{
	case 1:
		printf("星期1\n");
		break;//break语句不可缺少,从case进入,break跳出
	case 2:
		printf("星期2\n");
		break;
	case 3:
		printf("星期3\n");
		break;
	case 4:
		printf("星期4\n");
		break;
	case 5:
		printf("星期5\n");
		break;
	case 6:
		printf("星期6\n");
		break;
	case 7:
		printf("星期7\n");
		break;
	}
	return 0;
}
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
	printf("工作日\n");
	break;
case 6:
case 7:
	printf("休息日\n");
	break;
default://默认值,不在所写语句里时,并且可以在结构体内部任意位置,没有顺序可言
	printf("输入错误\n");
	break;
}
	return 0;
}

1.Break 语句需要注意位置,不一定每个case后面都要写,而且对于违规值,需要规定default值,该值可以放在语句内部任意位置

2.switch允许内部嵌套。

其中,语句项是:case 语句

表达式:

Case 整型常量表达式:

语句;

二、循环语句

1.While循环(条件为真时,循环语句执行,第一次得到假值时,跳出循环)

while(表达式)

循环语句;

总结:break在while循环中的作用:

其实在循环中只要遇到break,就立即停止后期的所有循环,直接终止循环。所以,while中的break是用于永久终止循环的。

总结:continue在while循环中的作用:

continue是终止本次循环,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次的入口判断。

2.for循环(使用最多)

for(初始化部分;条件判断部分;调整部分)

循环语句;

执行流程:初始化只执行一次,然后进行条件判断,条件为真时执行循环语句,最后进行调整部分,再次循环。

 

在for语句中break语句与while中一样,continue语句不相同

建议for循环时采用前闭后开的写法:for(I = 0; I<10;i++)  

--  I=0 闭合,i< 10开,此时的10具有某种意义

 

 

for循环的变种:

for(;;)    可以省略语句

for语句可以双初始值

3.Do…while()循环

Do

循环语句;

while(表达式);

 

int main()
{
	int i = 1;
	do
	{
		if(5 == i)
			continue;
		printf("%d ", i);
		i++;
	}
	while(i<=10);
	
	return 0;
}

特点:至少要将循环语句执行一次