C语言-if语句

1、一般形式 if(表达式)表达式1 else 表达式2   :表达式成立(为真)则执行表达式1,否则执行表达式2.

适用范围:真假,对错,开关,对立面的条件

注意:如果if语句中只包括一条语句,可以省略{}但最好不要省略,如果有多条语句,一定要加{}

如果else不包含任何语句,则可以省略掉else

2、分支 if(表达式1){语句1}else if(表达式){语句2} else if(表达式3){语句3}。。。。。else(语句4)

表达式1成立立即执行语句1,否则判断表达式2,表达式2成立则立即执行语句2,否则判断表达式3,表达式3成立则立即执行语句3,表达式1,表达式2,表达式3都不成立,则执行语句4

分支if语句中条件是互斥的,不能有重复或互相包含的情况。如果有,必须重新理清程序思路。

if的条件是一段连续的范围,要把所有的情况都涵盖完

适用范围:条件互斥,没有相重合的条件,且条件都是一段连续的范围的时候用

3、嵌套形式:

if (表达式) {

if(表达式1)

{

语句1   //表达式和表达式1同时成立

}else{

语句2    //表达式成立且表达式1不成立

}

}else{

if (表达式2) {

语句3   //表达式不成立且表达式2成立

}else{

语句4    //表达式不成立且表达式2不成立

}

}

使用范围:适合逐层递进,从大到小细分条件,可用嵌套

三目运算符 表达式?语句1:语句2 等价于if(表达式)语句1 else 语句2;

1、使用if分支选择性输出两个数中最大的数字:

    int a=2;
    int b=3;
    if(a>b)
    {
        printf("2");
    }
    else
    {
        printf("3");
    }

2、使用if语句判断一个从键盘输入的数字是奇数还是偶数

int a=0;//定义变量时最好对变量进行初始化。
    printf("请输入一个数字:");
    scanf("%d",&a);
    if(a%2==0)//对a除以2的余数进行判断,如果余数为0,则说明a为偶数,否则a为奇数。
    {
        printf("%d是一个偶数\n",a);
    }
    else
    {
        printf("%d是一个奇数\n",a);
    }

3、数学中分段函数的C语言模型:如果x为0,则y的值为1000,如果x不为0,y的值为x分之1,

  float y=0;  //定义变量
    int x=0;

    printf("请输入x:");   //输入
    scanf("%d",&x);

    if(x!=0)      //判断
    {
        y=(float)1/x;  //对运算结果要强制转换为float型。
    }
    else
    {
        y=1000;
    }

4、输入三个数,找出最大的并输出:

int a=0;
    int b=0;
    int c=0;
    int temp=0;

    printf("请输入三个数:\n");
    scanf("%d%d%d",&a,&b,&c);

    if(a>b)
    {
        temp=a;
    }
    else
    {
        temp=b;
    }
    if (temp>c) {
        printf("max=%d\n",temp);
    }
    else
    {
        printf("max=%d\n",c);
    }

5、三个数求最大值的第二种算法:先假设第一个数最大,然后和第二个数比较,得到最大的,最后与第三个数比较:

int a=0;
    int b=0;
    int c=0;
    int max=0;

    printf("请输入三个数:\n");
    scanf("%d%d%d",&a,&b,&c);

    max=a;//选择法找出三个数的最大值
    if (max<b) {
        max=b;
    }
    if (max<c) {
        max=c;
    }

    printf("最大数是%d",max);

6、判断一个两位数个位是奇数且十位是偶数:首先判断这个数时两位数,再对后续条件进行判断

  int a=0;

    printf("输入一个数:");
    scanf("%d",&a);

    if (a>9&&a<100&&a%2==1&&a/10%2==0) {
        printf("a是两位数,且个位是奇数,十位是偶数\n");
    }
    else
        printf("a不符合条件\n");

7、判断一个输入的数字是否是整数:

   float a;

    scanf("%f",&a);
    printf("输入的数字是%f",a);

    if (a-(int)a==0)
    {
        printf("a是整数");
    }
    else
    {
        printf("a不是整数");
    }

8、使用冒泡排序对四个数进行排序(不使用for循环)假设第一个数是最小的,然后与后续的数字逐一比较并移动到最后一个数字的位置,然后再使用第一个数字和最后一个数字之前的数字进行比较,得到第二小的数,并放在倒数第二的位置,重复循环直到得出最大的放在第一个的位置。

   int a=0;
    int b=0;
    int c=0;
    int d=0;
    int tmp=0;

    printf("请输入四个数字:");
    scanf("%d%d%d%d",&a,&b,&c,&d);

    if (a<b) {
        tmp=b;
        b=a;
        a=tmp;
    }
    if (b<c) {
        tmp=c;
        c=b;
        b=tmp;
    }
    if (c<d) {
        tmp=d;
        d=c;
        c=tmp;
    }

    if (a<b) {
        tmp=b;
        b=a;
        a=tmp;
    }
    if (b<c) {
        tmp=c;
        c=b;
        b=tmp;
    }
    if (a<b) {
        tmp=b;
        b=a;
        a=tmp;
    }

    printf("从大到小是%d,%d,%d,%d\n",a,b,c,d);

9、根据商品价格打折条件对应付款进行计算:如果三种商品的价格中有一个超过50或者三个商品价格之和超高100,则对总价格打折扣85%。

   float aprice,bprice,cprice;
    float sumprice;

    printf("请输入三种商品价格:");
    scanf("%f%f%f",&aprice,&bprice,&cprice);

    if (aprice>50||bprice>50||cprice>50||aprice+bprice+cprice>100) {
        sumprice=(aprice+bprice+cprice)*(1-0.15);
    }
    else sumprice=aprice+bprice+cprice;

    printf("应付钱数为%.1f\n",sumprice);

10、使用分支if语句确定三个数中最大的数:

int a,b,c,m;
    scanf("%d%d%d",&a,&b,&c);

    if (a>=b&&a>=c) {
        m=a;
    }
    else if (b>=a&&b>=c){
        m=b;
    }
    else m=c;

    printf("最大值为%d\n",m);

11、使用嵌套if语句找出三个数中最大的数

int a,b,c,m;

    scanf("%d%d%d",&a,&b,&c);

    if (a>b) {
        if (c>a)
            m=c;
        else
            m=a;
    }else{
        if(c>b)
            m=c;
        else
            m=b;
    }

    printf("最大的是:%d\n",m);

12、使用三目运算符求三个数中最大的数,方法一:

   int a,b,c,m;

    scanf("%d%d%d",&a,&b,&c);

    m=(((a>b)?a:b)>c?((a>b)?a:b):c);

    printf("最大值是%d\n",m);

13、使用三目运算符求三个数中最大的数,方法二:

  int a,b,c,m;
    scanf("%d%d%d", &a, &b, &c);
    m = a;
    m = m > b ? m : b;
    m = m > c ? m : c;
   printf("最大值是%d\n",m);

14、使用三目运算符求三个数中最大的数,方法三:

  int a,b,c,m;
    scanf("%d%d%d", &a, &b, &c);
    m = (a>=b && a>=c) ? a : (b>=a && b>=c ? b : c);
   printf("最大值是%d\n",m);

15、使用三目运算符求三个数中最大的数,方法四

  int a,b,c,m;
    scanf("%d%d%d", &a, &b, &c);
    m = a>=b ? (a>=c ? a : c) : (b>=c ? b : c);
   printf("最大值是%d\n",m);
时间: 2024-10-10 16:08:44

C语言-if语句的相关文章

Oracle SQL语言DML语句与事务_超越OCP精通Oracle视频教程培训28

Oracle SQL语言DML语句与事务_超越OCP精通Oracle视频教程培训28 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第3/5套:Oracle SQL语言DML语句与事务.主要学习Oracle数据库SQL语句INSERT命令,学习使用UPDATE命令,学习使用DELETE命令,学习创建PL/SQL对象,事务概念与控制,锁的检测和锁争用,了解撤销数据. Oracle SQL语言DML语句与事务管理,课

OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)

OpenGL ES着色器语言之语句和结构体(官方文档第六章) OpenGL ES着色器语言的程序块基本构成如下: 语句和声明 函数定义 选择(if-else) 迭代(for, while, do-while) 跳跃(discard, return, break, continue) 6.1函数定义   着色器是由一系列全局声明和函数定义组成的.函数声明规范如下: // prototype returnType functionName (type0 arg0, type1 arg1, ...,

27_Shell语言————case语句、bash如何与用户进行交互(case、read)

一.case语句 前面一直在用if语句实现选择分支,if语句固然可以完成多分支的条件判断,但代码不够清晰简洁,所以本章引入选择分支的另一种形式:case语句.该语句和if并无太大差别,主要作用是使代码的逻辑结构更清晰.case语句的用法格式为: case 变量引用(${}) in value1) 语句1 语句2 ... ;; value2) 语句1 语句2 ... ;; value3) 语句1 语句2 ... ;; *) 语句1 语句2 ... ;; esac 下面来举例演示case的用法: 例

C语言中语句的跨行支持总结

C语言中语句的跨行支持总结: 预处理一行写不下: 把一个预处理指示写成多行要用""续行,因为根据定义,一条预处理指示只能由一个逻辑代码行组成. 正常程序一行写不下: 把C代码写成多行则不必使用续行符,因为换行在C代码中只不过是一种空白符,在做语法解析(语法分析)时所有空白符都被丢弃了. 字符串常量跨行 \n只能在一行中起作用 \可以实现跨行写,但是不能自动换行,只能起连接作用,可以跨行写 但是\n与\连起来用就能既换行又能跨行写 P1000 超级玛丽游戏 对于洛谷的这个问题的解答: #

go语言switch语句用法

switch是最灵活的一种控制语句,在使用switch时候,需要注意: --左花括号"{"必须与switch处于同一行 --条件表达式不限制为常量或者整数 --单个case中,可以出现多个结果选项 --与C语言等规则相反,G0语言不需要break来明确退出一个case --只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case --可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个if....else的逻辑作用等同 --可以

子数涵数&#183;C语言——条件语句

首先,我们讲一下理论知识,在编程中有三种结构,分别是顺序结构.条件结构.循环结构,如果用流程图来表示的话就是: 那么在C语言中,如何灵活运用这三种结构呢?这就需要用到控制语句了. 而条件语句便是控制语句之一. C语言的条件语句一般来讲,有三个:if语句.if……else语句和switch语句 下面我们来分别介绍一下这三个语句 一.if语句 (用if语句实现上述的条件结构的一个分支) 二.if……else语句 (用if……else语句实现上述的条件结构) 三.switch语句 (现在用switch

go语言循环语句 for

Go语言中的循环语句只支持for关键字,而不支持while和do-while结构. sum := 0 for i := 0; i < 10; i++ { sum += i } 无限循环的写法: sum := 0 for { sum++ if sum > 100 { break } } 条件表达式中也支持多重赋值: a := []int{1, 2, 3, 4, 5, 6} for i, j := 0, len(a) – 1; i < j; i, j = i + 1, j – 1 { a[i

1.4 Go语言-switch语句(转)

与串联的if语句类似,switch语句提供了一个多分支条件执行的方法.不过在这里用一个专有名词来代表分支——case.每一个case可以携带一个表达式或一个类型说明符.前者又可被简称为case表达式.因此,Go语言的switch语句又分为表达式switch语句和类型switch语句.      先说表达式switch语句.在此类switch语句中,每个case会携带一个表达式.与if语句中的条件表达式不同,这里的case表达式的结果类型并不一定是bool.不过,它们的结果类型需要与switch表

探究 Go 语言 defer 语句的三种机制

Golang 的 1.13 版本 与 1.14 版本对 defer 进行了两次优化,使得 defer 的性能开销在大部分场景下都得到大幅降低,其中到底经历了什么原理? 这是因为这两个版本对 defer 各加入了一项新的机制,使得 defer 语句在编译时,编译器会根据不同版本与情况,对每个 defer 选择不同的机制,以更轻量的方式运行调用. 堆上分配 在 Golang 1.13 之前的版本中,所有 defer 都是在堆上分配,该机制在编译时会进行两个步骤: 在 defer 语句的位置插入 ru

子数涵数&#183;C语言——循环语句

之前,我们讲过了编程中的三种结构(顺序.条件.循环),现在我们来看一下循环语句如何编写. 一.while循环语句(先判断后执行) 1 #include<stdio.h> 2 int main(void) 3 { 4 int sum=0,i=1; //定义变量sum的值为0,变量i的值为1 5 while(i<=100) //当i小于等于100时,进入循环 6 { //while(){}:括号内为条件表达式,花括号内为循环体 7 sum=sum+i; //用sum来做累加器 8 i++;