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替换,反之,亦然。

 

原文地址:https://www.cnblogs.com/bobo-pcb/p/4904907.html