C语言打卡第五关

一、if语句

在操作符章节中我们学习过问号表达式,也就是当某一个条件表达式是真时,问号表达式的结果为冒号前的结果,当条件表达式是假时,问号表达式的结果为冒号后的结果。这里我们可以分析一下,问号表达式其实是一个条件判断功能表达式。

if语句的结构为:

if(表达式)

    语句1;
else
    语句2;

(1)if后面的表达式必须用括号括起来。

(2)语句可以是若干条语句构成的复合语句,用一对花括号括起来,还可以是一条空语句,用一个分号;表示。

(3)当语句2是空语句时,else连同语句2可省略。

(4)语句1和语句2还可以是if语句,即if语句的嵌套。

看一个程序代码

#include<stdio.h>
void main()
{
      char x;
      printf("请输入一个字符:\n");
      scanf("%c",&x);
      if(x>='a'&&x<='z'||x>='A'&&x<='Z')       //判断x是否为字母
         { 
             printf("字符是:%c,",x);             //两条以上的语句要用大括号
             printf("是字符\n");

         }
      else
         {
 
             printf("\n字符是:%c",x);
             printf("不是字符\n");
        }
        
            getchar();
}

二、 条件运算符和表达式

1.条件运算符

条件运算符“?:”是三目运算符,需要有三个运算符对象。条件运算符的优先级高于赋值运算符,低于关系运算符和算术运算符。

2.条件表达式

条件表达式的一般形式如下:

表达式1?表达式2:表达式3

条件表达式的运算顺序是:先计算表达式1,表达式1的值若为非0(真),求解表达式2,此时表达式2的值就是整个条件表达式的值,不执行表达式3;否则,就计算表达式3,此时表达式3,的值就是整个条件表达式的值,无须计算表达式2。

计算表中条件表达式的值

条件表达式条件表达式的值条件表达式条件表达式的值
3?8:68x>=0?x:(-x)表达式的值就是x的绝对值
!3?8:66(!优先级高,3就是0)x>=y?x:y表达式的值为x与y间的较大值

三、switch语句

if语句只提供了两种选择,在解决多分支选择时要使用if语句嵌套。由于使用多层的if语句嵌套非常不方便,这时可以采用多分支选择结构的switch语句.

1.switch语句形式 

switch(表达式)
{
    case 常量表达式1:语句1;
    case 常量表达式2:语句2;
    ...
    case 常量表达式n:语句n;
    default:语句;   //默认,可有可无
}

2.switch语句执行过程

首先计算表达式的值,然后在switch语句体内寻找与其吻合的case标号,即值与之相同的常量表达式,如果有与其吻合的case标号,则执行从该标号开始的各语句,包括其后的所有case和default语句, 直到switch语句体结束;如果没有与其吻合的case标号,但存在default标号,则从default标号开始执行,直到switich语句体结束;如果没有与其吻合的case标号,并且也不存在default标号,则跳过switch语句体,执行后续语句。

 此外,可以在各个case语句的最后加上break语句,每当执行到break语句时,立即跳出switch语句体,使得switch语句真正起到在多个分支选择其中一个分支执行的作用

 3.switch语句说明

表达式的运算结果可以是整型、字符型或者枚举型;表达式两边的括号不能省略;常量表达式的值必须是确定的,而且数据类型必须与表达式中的一致,case后面的各个常量表达式不可以写在case标号前面,也可以无default标号。

4.switch程序举例

  输入星期几,弹出星期几。

#include <stdio.h>
void main(){
    int a;
    printf("input integer number:      ");
    scanf("%d",&a);
    switch (a){
        case 1:printf("Monday\n"); break;
        case 2:printf("Tuesday\n");  break;
        case 3:printf("Wednesday\n"); break;
        case 4:printf("Thursday\n"); break;
        case 5:printf("Friday\n"); break;
        case 6:printf("Saturday\n"); break;
        case 7:printf("Sunday\n"); break;
        default:printf("error\n"); break;
    }
        getchar();
}

上期答案

逻辑表达式逻辑表达式的值逻辑表达式逻辑表达式的值
!01!'a'0
5&&6<2078&&00
5>0&&4>2165-'A'||00
5>10||5<815<0||5>80
!0||01!(5>0)0

这期作业

1.编写一个程序,判断是否为三角形

2.编写一个程序,从键盘上输入一个年份year(4位十进制数),判断是否为闰年。闰年条件是:能被4整除,但不能被100整除,能被400整除。

3.编写一个程序,输入学生的成绩给出相应的等级,90分以上等级为A,80分为B,70分为C,60分为D,60分以下为E.(用switch语句来编程)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值