条件语句 if ; 三目运算符 ; switch
if 语句
格式
if(关系表达式)//所谓的关系表达式的值 (真假性)
{
语句块1; 可以是一句也可以是多句话,甚至可以没有
}
1. 变量的作用域:变量的有效范围,变量所在的大括号
2. 自定义变量的作用域
{ 这个大括号 就是定义了 i这个变量的作用域
int i = 0;
printf("i = %d\n",i);
}
一个经典的面试题
if-else 结构
格式
if 如果
else 否则
if(关系表达式) 关系表达式只有两个结果
{
语句块1; 如果为真 执行 “语句块1”
}
else
{
语句块2; 如果为假 执行 “语句块2”
}
* 注意1 : 语句块1 和语句块2 有且仅有一个会被执行*
if - else if - else
if(条件表达式1)
{
执行语句块1;
}
else if(条件表达式2)
{
执行语句块2;
}
else if(条件表达式3)
{
执行语句块3;
}else if(条件表达式4)
{
执行语句块4;
}
else{
//是指以上的条件表达式都不满足的时候
语句块n;
}
执行顺序
先判断一个条件表达式 如果不成立,在判断第二个
条件表达式
如果前面的条件表达式都不成立 那么执行else
三目运算符
* 格式*
条件表达式? 值1 : 值2
int num = 20;
num > 0 ? 第一个值 : 第二个值;
注意
1. 条件表达式 也可以是一个普通的表达式
eg : 2 - 3 ? 100 : 200
2. 值1 和值2 也是可以 别的语句
eg:
int num = 20;
num > 10 ? printf(“比较大”) : printf(“比较小”);
产生随机数
1. 随机数: 一个范围内的 随机产生的数
2. c语言中:
引入一个东西: #include<stdio.h>
使用这个函数: arc4random_uniform(一个整数);
eg: 产生一个 20 --- 200 之间的数
arc4random_uniform(181) + 20;
( 最大数-最小数 + 1 )+ 最小数
switch 语句
switch(普通的表达式)
{//只要是表达式
肯定是有一个结果的 1,2,3,4...
case 1:
语句1;
break;
case 2:
语句2;
break;
case 3:
语句3;
break;
case 4:
语句4;
break;
case 6:
语句5;
break;
default: 默认:就是上面的case都没有符合
那么执行默认
语句n;
break;
}
注意:switch 中 有且仅有一个会被执行
case 穿透
1. 介绍一下 switch-case中的break的用途:
break的作用就是打断switch语句
使switch语句结束(执行到最后的大括号)
2.如果case中没有break,那么switch就不会结束
会执行下一个case里的语句
而不用进行判断,这个现象就是穿透现象
switch 注意点
- switch 和case 后面只能是“整数”或者“字符”
- 在case 模块中 可以加大括号
但是如果第一句是一个定义变量的语句 必须加大括号 - case语句中可以是一句也可以是多句 甚至可以没有语句
- case 后面不能是变量 只能是常量中的“整数”和“字符”
- case 后面的额值不能相同