一、 if分支 if(表达式 1) { 语句 1 }else if (表达式 2) { 语句 2 }else{ 语句3 } int main(int argc, const char * argv[]) { // 定义一个变量接受用户输入的分数 double score = -1; // 检验分数是否合法 while (score < 0 || score > 100) { // 提示用户输入一个分数 printf("请输入分数:\n"); // 接受分数 scanf("%lf", &score); } // 判断分数的等级 if (score <= 100 && score >= 90) { printf("A\n"); }else if (score < 90 && score >= 80) { printf("B\n"); }else if (score < 80 && score >= 70) { printf("C\n"); }else if (score < 70 && score >= 60) { printf("D\n"); }else { printf("E\n"); } return 0; }
注意事项: if(条件)可以直接写分号; 表示什么都不干,;-->空语句 如果if之后的代码块,如果只有一句话,则可以省略{ }。 永真式和永假式:if(1){ } 大括号中永远执行 if(0){ }永远不执行 if语句结合return语句: int main(int argc, const char * argv[])
{
if (a == 3)
{
return 0; // 在一个函数中,return语句之后的语句都不会执行
}
return 0;
}
- if作用域的问题:
int main(int argc, const char * argv[])
{
if (a == 3)
{
int num = 10;
}
printf("num = %d", num); //报错,访问不到num
}
- 作用域的紊(wen)乱
实现和计算机猜拳对决 <stdlib.h> 产生随机数的方法:arc4random_uiform(int) 表示:产生0~int-1的随机数
#include <stdio.h> #include <stdlib.h>
// 实现跟计算机猜拳,并将结果打印出来
// 规定:0.石头 1.剪刀 2.布
// 提示:产生随机数的方法:arc4random_uiform(int)表示产生0~int的随机数
int main(int argc, const char * argv[]) { // 定义一个数组存储规定 char *str[3] = {"石头", "剪刀", "布"};
// 定义变量存储用户输入的拳和计算机输入的拳 int player = -1, computer = -1; //
// 使计算机随机产生一个拳 computer = arc4random_uniform(3);
// printf("计算机输出的拳是:%s\n", str[computer]);
// 提示用户输入一个拳 printf("请输入一个拳:0.拳头,1.剪刀,2.布\n"); scanf("%d", &player);
while (player < 0 || player > 2) { printf("输入错误,请重新输入一个拳:0.拳头,1.剪刀,2.布\n"); scanf("%d", &player); }
// 比较两个拳判断输赢并输出 if (player == computer % 3) { printf("平手,电脑出了%s,我出了%s\n", str[computer], str[player]); } else if (player == (computer + 1) % 3) { printf("我输了,电脑出了%s,我出了%s\n", str[computer], str[player]); } else { printf("我赢了,电脑出了%s,我出了%s\n", str[computer], str[player]); }
return 0;
}
|