黑马程序员——C语言笔记之if,if....else....,switch判断
2015-08-16 14:30
555 查看
------- android培训、java培训、iOS培训、.Net培训、期待与您交流!
----------
(表达式/常量/变量) { 语句块 }
2.原来:如果表达式为真就执行语句块里的内容,为假就不执行。
二.if-else-
1.格式:if (表达式) {
语句块 1
}else{ 语句块2 }
2.原理:如果表达式为真执行语句块1,表达式为假执行语句块2。
3.注意:无论是真假都会执行一个语句块。
例:思考与实现
利用if-else-进行判断,当用户输入5时为真就回打印语句块1,如果不等于5的话就会打印语句块2。
三.if-else-嵌套
1.格式: if(表达式1){
语句块1
}else if(表达式2){
语句块2
}else if(表达式3){
语句块3
}else{ }
2.原理:表达式1为真就是执行语句块1,如果1为假2为真就执行语句块2,1.2都为假3为真就执行语句块3以此类推。
例: 思考与实现
输入一个属于0~100的成绩,按0~59为(E),60~69为(D),70~79为(C),80~89
为(B),90~100为(A)分成几等
使用if-else-嵌套,表达式1为真就是执行语句块1,如果1为假2为真就执行语句块2,1.2都为假3为真就执行语句块3以此类推。
四.if 使用注意:
1.空语句 :表达式后面没有任何要执行的语句。
例:if (a==3);
2.if之后的代码块,如果只有一个语句块的话可以省略大括号。
例:if(a>3)
printf("a>2\n");
print("a>3\n");
如果条件为真两句话都会打印,为假的话printf("a>2\n");这句话不会打印,是因为if后面省略了大括号,只影响一句话。
3.永真永假式
例:if (1) { }
大括号里永远执行。
if (0){ }
大括号里永远不执行。
4.if语句结合return语句。
例:if (a==3)
return 0;
printf("a>3");
return语句之后的语句都不会执行,所以不会执行printf("a>3");这句话。
5.if的作用域
例:if(a==3){
int no=10;
}
printf("no=%d",no);
no 是打印不出来的,因为语句块相当于一个代码块,执行完会释放掉。
switch
一.switch
1.格式:switch(表达式){
case 常量表达式1:语句块1
case 常量表达式2:语句块2
case 常量表达式n:语句块n
defauit :语句n+1
}
2.原理 :1)表达式的值逐个与其后的常量表达式的值相比较,当表达式的值与某个case后面的常量表达式相等
时,就执行该常量表达式后面的语句,然后不再进行判读,继续执行该语句后面所有case后的语 句。
2)如果表达式和case后的常量表达式均不相等,就执行defauit的后面的语句。
二.case穿透问题
1.case穿透视:当执行某个case后面的语句之后,并没有结束,而是继续执行下面case后的语句。
2.防止case穿透:在每一个case语句的后面加上一句“break”;。
break作用:结束switch语句。
例:思考与实现
使用switch判断是哪个季节,像12.1.2三个月份就是case的穿透效果,注意在每个季节后面要加break,防止穿
透。
三switch使用注意:
1.switch表达式的类型
1).可以是整型的变量
例:num=10;
switch(num)
2).可以是整型的常量
例:switch(10)
3).可以是返回值是整型的表达式
例:switch(5+5)
4).可以是转换为int类型的表达式
2.case后可以有多行语句,可以加括号,也可以省略括号。
3.可以加break,也可以不加。
4.case语句的注意
1).case语句的格式:case 常量表达式:(空格和冒号不能省略)
2).可以是常量
例:case 10:
3).可以是常量表达式
例:case 5+5:
4).default语句位置可以任意放
5).case的穿透问题同样适用于default
6).default语句放到switch语句最后,可以不用加break,如果不是放在最后,必须加上break
7).case 后面不能是实数
8).case语句后,默认的第一句话不能定义变量,如果第一句话非要定义的话要加上大括号
----------
if
一.if
1. 格式:if(表达式/常量/变量) { 语句块 }
2.原来:如果表达式为真就执行语句块里的内容,为假就不执行。
二.if-else-
1.格式:if (表达式) {
语句块 1
}else{ 语句块2 }
2.原理:如果表达式为真执行语句块1,表达式为假执行语句块2。
3.注意:无论是真假都会执行一个语句块。
例:思考与实现
利用if-else-进行判断,当用户输入5时为真就回打印语句块1,如果不等于5的话就会打印语句块2。
三.if-else-嵌套
1.格式: if(表达式1){
语句块1
}else if(表达式2){
语句块2
}else if(表达式3){
语句块3
}else{ }
2.原理:表达式1为真就是执行语句块1,如果1为假2为真就执行语句块2,1.2都为假3为真就执行语句块3以此类推。
例: 思考与实现
输入一个属于0~100的成绩,按0~59为(E),60~69为(D),70~79为(C),80~89
为(B),90~100为(A)分成几等
使用if-else-嵌套,表达式1为真就是执行语句块1,如果1为假2为真就执行语句块2,1.2都为假3为真就执行语句块3以此类推。
四.if 使用注意:
1.空语句 :表达式后面没有任何要执行的语句。
例:if (a==3);
2.if之后的代码块,如果只有一个语句块的话可以省略大括号。
例:if(a>3)
printf("a>2\n");
print("a>3\n");
如果条件为真两句话都会打印,为假的话printf("a>2\n");这句话不会打印,是因为if后面省略了大括号,只影响一句话。
3.永真永假式
例:if (1) { }
大括号里永远执行。
if (0){ }
大括号里永远不执行。
4.if语句结合return语句。
例:if (a==3)
return 0;
printf("a>3");
return语句之后的语句都不会执行,所以不会执行printf("a>3");这句话。
5.if的作用域
例:if(a==3){
int no=10;
}
printf("no=%d",no);
no 是打印不出来的,因为语句块相当于一个代码块,执行完会释放掉。
switch
一.switch
1.格式:switch(表达式){
case 常量表达式1:语句块1
case 常量表达式2:语句块2
case 常量表达式n:语句块n
defauit :语句n+1
}
2.原理 :1)表达式的值逐个与其后的常量表达式的值相比较,当表达式的值与某个case后面的常量表达式相等
时,就执行该常量表达式后面的语句,然后不再进行判读,继续执行该语句后面所有case后的语 句。
2)如果表达式和case后的常量表达式均不相等,就执行defauit的后面的语句。
二.case穿透问题
1.case穿透视:当执行某个case后面的语句之后,并没有结束,而是继续执行下面case后的语句。
2.防止case穿透:在每一个case语句的后面加上一句“break”;。
break作用:结束switch语句。
例:思考与实现
使用switch判断是哪个季节,像12.1.2三个月份就是case的穿透效果,注意在每个季节后面要加break,防止穿
透。
三switch使用注意:
1.switch表达式的类型
1).可以是整型的变量
例:num=10;
switch(num)
2).可以是整型的常量
例:switch(10)
3).可以是返回值是整型的表达式
例:switch(5+5)
4).可以是转换为int类型的表达式
2.case后可以有多行语句,可以加括号,也可以省略括号。
3.可以加break,也可以不加。
4.case语句的注意
1).case语句的格式:case 常量表达式:(空格和冒号不能省略)
2).可以是常量
例:case 10:
3).可以是常量表达式
例:case 5+5:
4).default语句位置可以任意放
5).case的穿透问题同样适用于default
6).default语句放到switch语句最后,可以不用加break,如果不是放在最后,必须加上break
7).case 后面不能是实数
8).case语句后,默认的第一句话不能定义变量,如果第一句话非要定义的话要加上大括号
相关文章推荐
- 2015年面试准备(1)-----c/c++的区别
- C++中的结构体和类的异同
- 本科毕设-基于C8051单片机的身份识别系统设计
- java与C语言的数据类型对应
- C语言中运算符优先级
- 自定义多列排序:C++/Java实现
- C语言中个各个进制的表示方法
- C++引用
- C++ Primer 学习笔记与思考_6 数组和动态数组易错点解读
- C++基础---数组
- C语言中文本文件与二进制文件的区别
- C++学习笔记——输入与输出
- Java中的引用和C++中引用的区别
- C++基础---引用
- 【C语言经典实例】-结构体-找出最高分
- C++内存管理篇整理
- C# 调用C/C++ Dll(参数含char*指针,返回char*指针)
- C++基础---指针与const
- C++基础---失控指针、迷途指针、野指针、悬浮指针及空指针
- 二叉树三种遍历算法的递归和非递归实现(C++)