• c语言学习之基础知识点介绍(六):if和switch结构


    本节主要说c语言中的分支结构。

      c语言中分支结构有两大类:一种是if,一种是switch。

    一、if结构

    //if结构,语法:
    //第一种:
    if(表达式){
          //语句块
    }
    
    //第二种:
    if(表达式){
          //语句块
    }else{
          //语句块
    }
    
    //第三种:
    if(表达式){
          //语句块
          if(表达式){
              //语句块
          }else{
             //语句块
          }
    }else{
          //语句块
    }  
    
    //第四种
    if(表达式){
          //语句块
    }else if(表达式1){
          //语句块1
    }else{
          //语句块2
    }
    /*
     if语句需要注意的地方:
        1.if语句后面千万不要加分号,如果你非要手贱加一个分号,那么就加在大括号后面。
        2.if语句的大括号,其实是可以省略的!  当你省略大括号的时候,那么if 语句只能管到离它最近的一句语句,但是这句语句不能是声明变量的语句。
        3.if语句里面可以写任意条语句(必须要有大括号)。
        4.非0的数就是真,0就是假,避免让你的表达式是永真或永假。
        5.if语句里面定义的变量只能在它语句块里面访问。
        6.if语句小括号里面的表达式可以写任意表达式。
    */  

    上面说了if结构,不过在某些时候可能觉得用 if 会显得代码块有点臃肿。下面介绍一种表达式。

    二、三目表达式

    //语法:
    //  表达式1 ? 表达式2 : 表达式3 ;
    //例如:
    int num1 = 10,num2 = 9;
    num1>num2?num1++:num2++;
    printf(" num1= %d num2 = %d",num1,num2);
    //输出 11,9

    顺便介绍下获取随机数的函数,需要导入头文件,include <stdlib.h>

    include <stdlib.h>
    arc4random_uniform(u_int32_t);
    //括号中填正整数,如果填n,则会随机生成0到n之间的数字,不包括n。

     三、switch结构

    //switch结构语法
    switch(表达式){
        case 常量表达式1:
            //语句块
            break;   
    .........
        default:
            printf("num = %d",num);
            break;   
    }
    //运行机制:先得出表达式的结果,根据结果跳转到对应的case里面去执行,如果没有对应的case,则会跳转到default中。
    //如果case块后不加break,会发生穿透(从当前的case块执行完之后,进入下一个case块)。
    
    /*
    注意:
    1、switch语句后的小括号里面只能写整数类型的表达式,否则会报错。
    2、case后面只能接常量表达式且不能重复。
    3、case后面不能紧跟着就声明变量,若要声明,请在声明之前加1条或者多条语句。
    4、如果一定要直接声明变量,请在case块加上大括号。
    5、如果不加大括号声明的变量,其他case块也可以使用;反之则不能使用
    6、default语句可以写在switch块中任意位置,不影响程序执行。
    */

    凡是能用if的地方,都可以用switch替换,反之,亦然。

     

  • 相关阅读:
    洛谷P2516 [HAOI2010]最长公共子序列 动态规划 容斥原理
    [LeetCode]235. Lowest Common Ancestor of a Binary Search Tree
    [LeetCode]144. Binary Tree Preorder Traversal二叉树前序遍历
    [LeetCode]129. Sum Root to Leaf Numbers路径数字求和
    [leetcode]645. Set Mismatch
    [leetcode]110BalancedBinaryTree平衡二叉树
    [leetcode]199. Binary Tree Right Side View
    [LeetCode]116. Populating Next Right Pointers in Each Node
    [leetcode]720. Longest Word in Dictionary字典中最长的单词
    [LeetCode]690. Employee Importance员工重要信息
  • 原文地址:https://www.cnblogs.com/bobo-pcb/p/4904907.html
Copyright © 2020-2023  润新知