(一)if相关知识
①if:
if(表达式) //理解成如果,如果为真,就会实现,否则不然。 {//满足条件执行} //尽量带上这个{},不带只管理一条语句
//No.1 基本if语句
if ("很帅") //非零表示成立
{
printf("你真帅!\n");
}
int a = 1;
if (a = 0) //赋值语句充当条件,最终是赋的值充当条件 if(0)
{
printf("赋值语句!\n");
}
//No.2 if处理多个条件使用逻辑运算符&& ||
//判断一个数字是否能够被3和5整除
int num = 45;
if (num % 3 == 0 && num % 5 == 0)
{
printf("满足条件的数字\n");
}
//判断一个数字是否能够被3但是不能被5整除
//num % 3 == 0 && num % 5 != 0
//判断一个数字能够被3或者被5整除
//num % 3 == 0 || num % 5 == 0//No.3 if语句嵌套:条件逐步筛选,可以通过逻辑运算符去描述
if(“高”)
{
if(“富”)
{
if(“帅”)
{
printf(“你是高富帅“);
}
}
}
等价于 if(“高”&&“富”&&“帅”){
printf(“你是高富帅“);}
②if else
//复合语句
if(表达式)
{
//条件成立执行这里
printf("1");
}
else
{
//条件不成立执行这里
printf("1");
}注意:--- else不能单独存在!!! else只和最近的if搭配
if else 嵌套:
③if elseif ……else
//实质是条件细化//条件的逐步筛选if(表达式1){
printf(“表达式1成立\n”);
}
else if(表达式2){
printf(“表达式2成立\n”);
}
else if(表达式3){
printf(“表达式3成立\n”);
}
.....else{
printf(“上述表达式均不成立\n”);
}
//整个语句一条复合语句,只会做一次成功的比较,执行一个地方
该语句的else if 可无限嵌套。
(二)switch语句
switch(表达式1)
{
case 常量1: //表达式1 和常量1比较
语句1;
case 常量2:
语句2;
case 常量3:
语句3;
default:
其他情况执行的地方;
}
//1.switch执行过程:从上至下执行;switch语句只做一次成功的比较,后面的语句不需要比较,都会一次执行
//2.case后面必须是常量,一般写的数字,或者字符,不能写字符串
//3.default的位置是随便放的,一般是放在最下面的
//4.switch语句不执行case和default以外的其他语句
//5.一般switch都是结合break语句(用来跳出switch语句)来使用的//如果多个case 不同的值是相同的处理方案,则可以合并
break语句:是用来中断当前循环,通常在 switch 语句和 while、for、for...in、或 do...while 循环中使用 break 语句。 最一般的是在 switch 语句中使用 label 参数,但它可在任何语句中使用,无论是简单语句还是复合语句。
(三)变量的作用域和生命周期
Ⅰ 作用域: 使用范围,有效范围
-
局部变量:被{}包含的变量一般是局部变量,不会默认初始化
-
全局变量:没有被{}包含的变量一般是局部变量,默认初始化为0
-
外部变量:extern
Ⅱ 生命周期: 变量产生到死亡的时间段
一般变量的生命周期跟作用域有关,作用域结束就死亡。
-
静态变量:以static存储类声明的变量。其生命周期:从程序运行到程序关闭(才死亡)
-
自动变量(auto):
作用域重叠问题:
相同作用域的变量不能同名;访问就近原则、若想访问全局变量使用“::”;