continue
continue的主要作用是结束本次循环,他不会退出整个大的循环,具体的使用格式如下:
for(控制变量初始化;变量条件;控制变量更新){
循环体;
if(条件标志){
continue;
}
}
注:上图中执行continue后,直接跳过本次循环,进入下一次循环。
break
break是跳出整个循环,区别于continue,执行break之后,不会再执行后面的循环体。
for(控制变量初始化;变量条件;控制变量更新){
if(条件标志)
break;
循环体;
}
练习:使用c语言实现一个猜拳小游戏
//猜拳游戏
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int a = 0,b = 0,c = 0,g,l = 1,m,num,count = 1,score = 0,score1 = 0;
int a1 = 0,b1 = 0,c1 = 0,a2 = 0,b2 = 0,c2 = 0,a3 = 0,b3 = 0,c3 = 0;
char k,o;
printf("--------------------欢迎进入游戏世界----------------------\n");
printf("\t\t ****************\n");
printf("\t\t ** 猜拳,开始**\n");
printf("\t\t ****************\n");
printf("出拳规则:1、剪刀 2、石头 3、布\n");
printf("----------------------------------------------------------\n");
printf("\n");
printf("请选择对方角色(1、刘备 2、孙权 3、曹操):");
scanf("%d",&g);
getchar();
switch(g){
case 1:
printf("你选择了刘备对战\n");
break;
case 2:
printf("你选择了孙权对战\n");
break;
case 3:
printf("你选择了曹操对战\n");
break;
default:
printf("你的输入有误!\n");
break;
}
while(l){
printf("要开始吗?(y/n)");
scanf("%c",&k);
getchar();
if(k == 'y'){
printf("请出拳:1、剪刀 2、石头 3、布(输入相应数字):");
scanf("%d",&m);
getchar();
switch(m){
case 1:
printf("你出拳:剪刀\n");
a++;
break;
case 2:
printf("你出拳:石头\n");
b++;
break;
case 3:
printf("你出拳:布\n");
c++;
break;
default:
printf("你的输入有误!\n");
break;
}
srand((unsigned)time(NULL));
num = rand()%3+1;
switch(num){
case 1:
if(g == 1){
printf("刘备出拳:剪刀\n");
a1++;
}else if(g == 2){
printf("孙权出拳:剪刀\n");
b1++;
}else{
printf("曹操出拳:剪刀\n");
c1++;
}
break;
case 2:
if(g == 1){
printf("刘备出拳:石头\n");
a2++;
}else if(g == 2){
printf("孙权出拳:石头\n");
b2++;
}else{
printf("曹操出拳:石头\n");
c2++;
}
break;
case 3:
if(g == 1){
printf("刘备出拳:布\n");
a3++;
}else if(g == 2){
printf("孙权出拳:布\n");
b3++;
}else{
printf("曹操出拳:布\n");
c3++;
}
break;
default:
printf("输入有误!\n");
break;
}
if(m == 1&&num == 3||m == 2&&num == 1||m == 3&& num == 2){
printf("结果:恭喜,你赢了!\n");
score++;
}else if(m == num){
printf("结果:平局!\n");
}else{
printf("结果:很遗憾,你输了!\n");
score1++;
}
printf("是否开始下一轮?(y/n)");
scanf("%c",&o);
getchar();
if(o == 'n'){
printf("\n");
printf("---------------------------------------\n");
if(g == 1){
printf("刘备 VS 王子:累计出拳统计\n");
printf("\n");
}else if(g == 2){
printf("孙权 VS 王子:累计出拳统计\n");
printf("\n");
}else{
printf("曹操 VS 王子:累计出拳统计\n");
printf("\n");
}
printf("姓名\t剪刀\t石头\t布\n");
printf("王子\t%d\t%d\t%d\n",a,b,c);
if(g == 1){
printf("刘备\t%d\t%d\t%d\n",a1,a2,a3);
}else if(g == 2){
printf("孙权\t%d\t%d\t%d\n",b1,b2,b3);
}else{
printf("曹操\t%d\t%d\t%d\n",c1,c2,c3);
}
printf("\n");
if(g == 1){
printf("刘备 VS 王子\n");
printf("\n");
}else if(g == 2){
printf("孙权 VS 王子\n");
printf("\n");
}else{
printf("曹操 VS 王子\n");
printf("\n");
}
printf("对战次数:%d\n",count);
printf("姓名\t\t得分\n");
printf("王子\t\t%d\n",score);
if(g == 1){
printf("刘备\t\t%d\n",score1);
}else if(g == 2){
printf("孙权\t\t%d\n",score1);
}else{
printf("曹操\t\t%d\n",score1);
}
printf("\n");
printf("恭喜恭喜!");
break;
}else{
count++;
}
}
}
return 0;
}