一、分支语句(循环结构)
- 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;
}
特点:至少要将循环语句执行一次