1.分支语句
话说小乐最近在表白一个女孩,他面临一个问题就是:1.那个女孩也喜欢他,他就能追到.2. 女孩没有回复他,说明还有可能3.那个女孩不喜欢他,他追不到.那么,我们怎么可以帮他实现呢?我们把女孩喜欢他为1,不喜欢他为0
看下面的代码!那个女孩的选择交给读者手中
#include <stdio.h> int main() { int x; printf("喜欢按1,不喜欢按0\n"); printf("女孩做出选择:"); scanf("%d", &x); if (x == 1) { printf("她们在一起了\n"); } else if(x==0) { printf("小乐没有机会\n"); } else { printf("小乐还有机会\n"); } return 0; }
上面的这个是用if-else语句实现的。兄弟们,学废了吗?
知识知识来了(if里面包含多种语句的时候要用大括号,else只与上面与他最近的没有匹配的if 进行匹配,好的代码风格是每个if,else-if,else的后面的用大括号)
下面用switch--case语句进行实现
#include <stdio.h> int main() { int x; printf("喜欢按1,不喜欢按0\n"); printf("女孩做出选择:"); scanf("%d", &x); switch (x) { case 0: printf("小乐没有机会\n"); break; case 1: printf("她们在一起了\n"); break; default: printf("小乐还有机会\n"); break; } return 0; }
它们的基本形式是switch(整型表达式),case后面的是也是整型表达式,整个的一个case为一个语句项。
switch 语句的形式是这样的:
switch (整型变量) {//这是语句项 case 整型变量表达式: 语句; }
执行完一个case最后要用break进行跳出,但有些时候就不需要(这里的break是跳出它所在的switch语句的)。看这个:
#include <stdio.h> int main() { int day; scanf("%d", &day); switch (day) { case 1: case 2: case 3: case 4: case 5: printf("工作日"); break; case 6: case 7: printf("休息日"); break; default: printf("非法输入"); break; } return 0; }
这个就不需要在每个case里面加上break,只需要在关键地方加上就可以。
2.循环语句
哎😒,女孩没有给小乐回复,小乐觉得还有机会,就对这个女孩发起了猛攻,天天缠着他。
但这最后还是有两个结果:1.女孩同意他了,2.女孩感觉他非常烦人,拒绝他了.
下面,我们用while循环来帮他实现追女神的代码:while(循环条件)
#include <stdio.h> int main() { int x; printf("喜欢按1,不喜欢按0\n"); printf("女孩做出选择:"); while(scanf("%d", &x)!=EOF) { switch (x) { case 0: printf("小乐没有机会\n"); break; case 1: printf("她们在一起了\n"); break; default: printf("小乐还有机会\n"); break; } if (x == 1) { break; } } return 0; }
但过程并不像我们想的这么简单,女孩只给了小乐10次机会(给的太少了),那我们如何实现呢?
这次我们用for循环实现,
它的形式:for(初始化;判断条件;调整)
#include <stdio.h> int main() { int x = 0 , n = 0; printf("喜欢按1,不喜欢按0\n"); printf("女孩做出选择:"); for (n = 0; n < 10; n++) { scanf("%d", &x); switch (x) { case 0: printf("小乐没有机会\n"); break; case 1: printf("她们在一起了\n"); break; default: printf("小乐还有机会\n"); break; } if (x == 1) { break; } } return 0; }
我们发现这两处地方都有break语句 它的意思是跳出它所在的循环体。
小乐追女生追的很辛苦,在第五次的时候就放弃了一下,那该这么实现呢?
只需要在循环体里面加一个continue;——它的意思是终止此次循环,进入下一次循环(循环体中
continue后面的语句不执行,程序进入循环体开头的地方)
if (n == 5) { continue; } 2.
但是如果用while循环这样写,就只能女孩同意了,小乐才能跳出去。
看:
while ( n <= 10) { scanf("%d", &x); switch (x) { case 0: printf("小乐没有机会\n"); break; case 1: printf("她们在一起了\n"); break; default: printf("小乐还有机会\n"); break; } if (x == 1) { break; } if (n == 5) { continue; } n++; } 2.
do--while和while差不多
do--while的形式为
do { 循环体的部分 }while(条件判断部分);//注意这里有分号