C语言:C多重分支-石头剪刀布游戏
两个玩家分别说出任意一项,根据游戏规则确定胜负(胜、负、平局)。
####注意:所有输出语句中的标点均为中文标点符号!
例如: 将石头用0来代替、布用1来代替、剪刀用2来代替,依次输入两个数 当玩家一输入0时,玩家二输入1则输出玩家二胜。
当玩家一输入0时,玩家二输入2则输出玩家一胜。
当玩家一与玩家二输入相同时,则输出平局。
C中可利用if
条件语句达到进行判断的目的,if
语句使用布尔表达式或布尔值作为分支条件来进行分支控制。
具体语义说明:
-
如果
<条件表达式>
的值为非0
(true
),即“真”,则执行大括号内的所有<语句>
,然后按顺序执行if
语句的后继语句。 -
如果
<条件表达式>
的值为0
(false
),即“假”,则忽略大括号内的所有<语句>
,按顺序执行if
语句的后继语句。 -
若满足
if
条件后面的语句只有一条时,可省略{}
例如:
应用示例:
// 当分数score小于60时,输出"考试不合格!"
if (score < 60)
printf("考试不合格!");
if-else语句
基本语法: 采用if-else
实现两路分支的基本语法如下:
if (<条件表达式>) {
<语句1>
}else {
<语句2>
}
其中,else
和<语句2>
称为else
分支或else
子句。
具体语义说明:
-
如果
<条件表达式>
的值为非0
,即“真”(true
),则执行大括号内的所有<语句1>
,执行完<语句1>
后继续执行整个if
语句的后继语句(不执行<语句2>
); -
如果
<条件表达式>
的值为0
,即“假”(false
),则跳过<语句 1>
,执行大括号内的所有<语句2>
,执行完<语句2>
后继续执行整个if
语句的后继语句。 -
if
语句根据<条件表达式>
的结果,选择<语句1>
和<语句2>
中的一个执行,执行完后,整个if
语句也就执行完了。
#include <stdio.h>
int main()
{
int p1,p2;
int flag=0;
printf("请选择石头(0)、布(1)、剪刀(2):\n");
printf("玩家1:玩家2:");
scanf("%d%d",&p1,&p2);
if(p1==0)
{
if (p2==0) flag=0;
if (p2==1) flag=2;
if (p2==2) flag=1;
}
else if (p1==1)
{
if (p2==0) flag=1;
if (p2==1) flag=0;
if (p2==2) flag=2;
}
else if (p1==2)
{
if (p2==0) flag=2;
if (p2==1) flag=1;
if (p2==2) flag=0;
}
switch (flag)
{
case 0:printf("平局!\n");break;
case 1:printf("玩家1胜!\n");break;
case 2:printf("玩家2胜!\n");break;
}
return 0;
}