学习C语言基础(5)选择结构

选择结构

if语句(可嵌套)

if-else

    int Age;
    printf("请输入你的年龄:");
    scanf("%d", &Age);
    if (Age >= 18)//括号里放判定条件
    {printf("身份认证成功\n");}//若if()的条件成立,执行{}里面的内容
    else {printf("身份认证失败,剩余游戏时间1.5小时\n");}//若if()的条件不成立,
    执行else()的内容

if-else if

int  score;
	printf("请输入学生成绩:\n" );
	scanf("%d", &score);
	if (score >= 90)
	{
		printf("成绩优秀\n");
	}
	else if (score >= 80)
	{
		printf("成绩良好\n");
	}
	else if (score >= 60)
	{
		printf("成绩合格");
	}
	else { printf("成绩不合格\n"); }

else子句是if语句的一部分,和if配套使用,不单独使用。if语句嵌套使用时,else和if的匹配原则:else和它上面的、最近的且尚未匹配的if配对。可以参考下面两段代码

int score;
	printf("请输入学生成绩:\n");
	scanf("%d", &score);
	if (score >= 60)
		printf("成绩合格\n");
	if (score >= 90)
		printf("成绩优秀\n");
	else
		printf("成绩不及格\n");
/*输入成绩75时,返回的结果是:
成绩合格
成绩不合格
*/
//我们给这段代码加上{}再运行
int score;
	printf("请输入学生成绩:\n");
	scanf("%d", &score);
	if (score >= 60)
		{printf("成绩合格\n");
	if (score >= 90)
		printf("成绩优秀\n");}
	else
		printf("成绩不及格\n");
/*输入成绩75时,返回的结果是:
成绩合格
*/

switch语句

 int a;
    printf("请输入一个数字:");
    scanf("%d", &a);
    switch (a)//a为表达式
     {
    case 1: printf("a\n");/*若表达式的值和case后面的常量表达式相同,
就执行case后面的语句,当执行到break或者switch的最后一条语句时,跳出
这个选择*/
    case 2: printf("b\n"); 
    case 3: printf("c\n"); 
    case 4: printf("d\n"); 
    default:printf("请重新输入一个数字\n"); /*如果没有case后面的常量
表达式满足条件,就执行default语句*/

	}
/*输入数字1时,返回结果为
a
b
c
d
*/
//缺少break语句,不管是否符合case的判定条件,程序都会继续运行下去
int a;
    printf("请输入一个数字:");
    scanf("%d",&a);
    switch(a)
    {
        case 1: printf("a\n"); break;
        case 2: printf("b\n"); break;
        case 3: printf("c\n"); break;
        case 4: printf("d\n"); break;
        default:printf("请重新输入一个数字\n"); break
    }    
/*输入数字1,返回结果为
a
*/


两种选择方式各有优劣。当条件复杂,比如含有&&、||、!等存在时用if语句比较方便;如果条件简单,但分支很多,那么比较用switch比较合适。

?(条件运算符)

//用法,形如:int c =(a>b)?a:b;
//比如下面这么一段求绝对值的代码
int i;
printf("请输入一个数字:\n");
scanf("%d", &i);
int x = (i < 0) ? -i : i;
printf("%d", x);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值