03-if.switch.do_while.for
2015-05-26 10:39
281 查看
分支语句if
if语句用于根据条件选择执行语句
else不能独立存在且总是与它最近的未配对的if相匹配
else语句后可以接连其他if语句
if (condition) {
//statement1;
} else {
//statement2;
}
if (cond1) {
//statement1;
} else if (cond2) {
//statement2;
} else {
//statement3
}
就是以下形式
if (cond1) {
//statement1;
} else {
if (cond2) {
//statement2;
} else {
//statement3
}
}
if语句中0值比较的注意点
1.bool型变量应该直接出现于条件中,不需要再比较真假,非0即为真;
2.普通变量和0值比较时,0值最好出现在比较符号左边;
3.float型变量不能直接进行0值比较,需要定义精度;
bool b = TRUE;
if (b) {
//statement1;
} else {
//statement2;
}
int i = 1;
if (0 == i) {
//statement1;
} else {
//statement2;
}
#define EPSINON 0.00000001
float f = 0.0;
if ((-EPSINON <= f) && (f <= +EPSINON)) {
//statement1;
} else {
//statement2;
}
switch分支
switch语句对应单个条件多个分值的情形;
每个case语句分支必须要有break,否则会导致分支重叠
default语句必须要加上,以处理特殊情况
switch (表达式) {
case 常量:
代码块
case 常量:
代码块
default:
代码块
}
switch语句中的值只能是整型或字符型
case语句排序顺序分析
按字母或数字顺序排列各语句
正常情况放前面,异常情况放后面
default语句只能用于真正的默认情况
if和switch对比使用实例
#include <stdio.h>
void f1(int i) {
if( i < 6 ) {
printf("Failed!\n");
} else if( (6 <= i) && (i <= 8) ) {
printf("Good!\n");
} else {
printf("Perfect!\n");
}
}
void f2(char i) {
switch(i) {
case 'c':
printf("Compile\n");
break;
case 'd':
printf("Debug\n");
break;
case 'o':
printf("Object\n");
break;
case 'r':
printf("Run\n");
break;
default:
printf("Unknown\n");
break;
}
}
int main() {
f1(5);
f1(9);
f2('o');
f2('d');
f2('e');
return 0;
}
小结
if语句适用于需要按片进行判断的情形;
switch语句适用于需要对各个离散值进行分别判断的情形;
if语句可以完全从功能上代替switch语句,但switch语句无法代替if语句;
switch语句对于多分支判断的情形更加简洁;
循环语句
循环语句的基本工作方式
通过条件表达式判定是否执行循环体
条件表达式遵循if语句表达式的原则
do,while,for的区别
do语句先执行后判断,循环体至少会被执行一次
while语句先判断后执行,循环体可能不被执行
for语序先判断后执行,相比while更简洁
三种循环语句使用对比:
累加自然数
#include <stdio.h>
int f1(int n){
int ret = 0;
int i = 0;
/* 最直观 */
for(i = 1; i <= n; i++) {
ret += i;
}
return ret;
}
int f2(int n){
int ret = 0;
/* 实现方式比较抽象 */
while((n > 0) && (ret += n--));
/* 如果没有n>0的判断就会进入死循环 */
/* while(n && (ret += n--)); 死循环 */
return ret;
}
int f3(int n){
int ret = 0;
if (n > 0) {
/* 如果没有n>0的判断就会进入死循环 */
do {
ret += n--;
} while(n);
/* 只要n!=0就是真,while就会继续循环 */
}
/* 可以将条件该为while(n > 0);避免死循环 */
/* 用while(n>0) do{} 可以代替上面的分支和循环 */
return ret;
}
int main(){
printf("%d\n", f1(10));
printf("%d\n", f2(10));
printf("%d\n", f3(10));
return 0;
}
break和continue的区别
break表示终止循环的执行(跳出块语句(循环,switch));可以用在循环和switch;
continue表示终止本次循环,进入下次循环执行;
switch能否使用continue关键字?
continue是依赖于循环的,不能用于switch分支;
do和break的妙用
-----------------------------------------------
#include <stdio.h>
#include <malloc.h>
int func(int n)
{
/* 1.统一的资源分配 */
int i = 0;
int ret = 0;
int* p = (int*)malloc(sizeof(int) * n);
/* 2.代码执行*/
do {
if( NULL == p ) break;
/* break跳出语句块 */
if( n < 0 ) break;
/* 如果将break替换为return,代码将比较繁琐 */
for(i = 0; i < n; i++) {
p[i] = i;
printf("%d\n", p[i]);
}
ret = 1;
} while(0);
/* 外层的do...while语句块一定会执行一次 */
/* 3.统一的资源回收 */
free(p);
return ret;
}
int main() {
if( func(10) ) {
printf("OK");
} else {
printf("ERROR");
}
return 0;
}
-----------------------------------------------
if语句用于根据条件选择执行语句
else不能独立存在且总是与它最近的未配对的if相匹配
else语句后可以接连其他if语句
if (condition) {
//statement1;
} else {
//statement2;
}
if (cond1) {
//statement1;
} else if (cond2) {
//statement2;
} else {
//statement3
}
就是以下形式
if (cond1) {
//statement1;
} else {
if (cond2) {
//statement2;
} else {
//statement3
}
}
if语句中0值比较的注意点
1.bool型变量应该直接出现于条件中,不需要再比较真假,非0即为真;
2.普通变量和0值比较时,0值最好出现在比较符号左边;
3.float型变量不能直接进行0值比较,需要定义精度;
bool b = TRUE;
if (b) {
//statement1;
} else {
//statement2;
}
int i = 1;
if (0 == i) {
//statement1;
} else {
//statement2;
}
#define EPSINON 0.00000001
float f = 0.0;
if ((-EPSINON <= f) && (f <= +EPSINON)) {
//statement1;
} else {
//statement2;
}
switch分支
switch语句对应单个条件多个分值的情形;
每个case语句分支必须要有break,否则会导致分支重叠
default语句必须要加上,以处理特殊情况
switch (表达式) {
case 常量:
代码块
case 常量:
代码块
default:
代码块
}
switch语句中的值只能是整型或字符型
case语句排序顺序分析
按字母或数字顺序排列各语句
正常情况放前面,异常情况放后面
default语句只能用于真正的默认情况
if和switch对比使用实例
#include <stdio.h>
void f1(int i) {
if( i < 6 ) {
printf("Failed!\n");
} else if( (6 <= i) && (i <= 8) ) {
printf("Good!\n");
} else {
printf("Perfect!\n");
}
}
void f2(char i) {
switch(i) {
case 'c':
printf("Compile\n");
break;
case 'd':
printf("Debug\n");
break;
case 'o':
printf("Object\n");
break;
case 'r':
printf("Run\n");
break;
default:
printf("Unknown\n");
break;
}
}
int main() {
f1(5);
f1(9);
f2('o');
f2('d');
f2('e');
return 0;
}
小结
if语句适用于需要按片进行判断的情形;
switch语句适用于需要对各个离散值进行分别判断的情形;
if语句可以完全从功能上代替switch语句,但switch语句无法代替if语句;
switch语句对于多分支判断的情形更加简洁;
循环语句
循环语句的基本工作方式
通过条件表达式判定是否执行循环体
条件表达式遵循if语句表达式的原则
do,while,for的区别
do语句先执行后判断,循环体至少会被执行一次
while语句先判断后执行,循环体可能不被执行
for语序先判断后执行,相比while更简洁
三种循环语句使用对比:
累加自然数
#include <stdio.h>
int f1(int n){
int ret = 0;
int i = 0;
/* 最直观 */
for(i = 1; i <= n; i++) {
ret += i;
}
return ret;
}
int f2(int n){
int ret = 0;
/* 实现方式比较抽象 */
while((n > 0) && (ret += n--));
/* 如果没有n>0的判断就会进入死循环 */
/* while(n && (ret += n--)); 死循环 */
return ret;
}
int f3(int n){
int ret = 0;
if (n > 0) {
/* 如果没有n>0的判断就会进入死循环 */
do {
ret += n--;
} while(n);
/* 只要n!=0就是真,while就会继续循环 */
}
/* 可以将条件该为while(n > 0);避免死循环 */
/* 用while(n>0) do{} 可以代替上面的分支和循环 */
return ret;
}
int main(){
printf("%d\n", f1(10));
printf("%d\n", f2(10));
printf("%d\n", f3(10));
return 0;
}
break和continue的区别
break表示终止循环的执行(跳出块语句(循环,switch));可以用在循环和switch;
continue表示终止本次循环,进入下次循环执行;
switch能否使用continue关键字?
continue是依赖于循环的,不能用于switch分支;
do和break的妙用
-----------------------------------------------
#include <stdio.h>
#include <malloc.h>
int func(int n)
{
/* 1.统一的资源分配 */
int i = 0;
int ret = 0;
int* p = (int*)malloc(sizeof(int) * n);
/* 2.代码执行*/
do {
if( NULL == p ) break;
/* break跳出语句块 */
if( n < 0 ) break;
/* 如果将break替换为return,代码将比较繁琐 */
for(i = 0; i < n; i++) {
p[i] = i;
printf("%d\n", p[i]);
}
ret = 1;
} while(0);
/* 外层的do...while语句块一定会执行一次 */
/* 3.统一的资源回收 */
free(p);
return ret;
}
int main() {
if( func(10) ) {
printf("OK");
} else {
printf("ERROR");
}
return 0;
}
-----------------------------------------------
相关文章推荐
- 循环控制语句for while do-while if switch
- 流程控制语句(if,switch,for,while,do-while)
- C语言关键字--- if switch do while for
- 在不使用if,while,do...while,for,switch,?:等操作,实现函数void printLess(int k),返回小于k的所有整数
- Swift第三课 分支语句 if else for forin switch while do-while
- if switch do while for分析
- 【Swift】学习笔记(五)——控制语句(if,switch,for-in,for,while,do-while)
- 控制流程语句if、switch、while、do-while、for
- C语言中流程控制语句(if,switch,for,while,do-while,continue,break,return)
- if和switch语句、循环语句while和do……while、for
- if条件和for循环语句、while、do..while、switch语法
- Swift学习——使用if和switch来进行条件操作,使用for,while,和do-while来进行循环(三)
- Swift学习——使用if和switch来进行条件操作,使用for,while,和do-while来进行循环(三)
- if,switch,do,while,for分析
- Java基础第一阶段——03_Java语言基础_运算符&if&while&switch&for语句
- if,continue,break,while,do-while, switch,return,foreach,for等条件语句的使用
- if,switch,while,do..while,for语句在JSP中的用法示例
- 笔记:循环(for, if, do...while, break, switch)
- c++学习 day2 循环学习(while do while for) 分支学习(if ; if else; if else if; switch的应用 )
- C语言 if,switch,do,while,for分析