if switch do while for分析
2017-08-06 16:37
453 查看
一、分支语句if分析
if语句用于根据条件选择执行语句;
else不能独立存在且总是与它最近的if相匹配;
else语句后可以连接其他if语句。
![](https://img-blog.csdn.net/20170806165833418?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhlemhlXzk4NjA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
if(condition)
{
//statement1
}
else
{
//statement2
}if语句中零值比较的注意点:
(1)bool型变量应该直接出现于条件中,不要进行比较;
(2)普通变量和0值比较时,0值应该出现在比较符号左边;
(3)float型 变量不能直接进行0比较,需要定义精度。
情况1:
int i = 0;
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语句有必要加上,以处理特殊情况。
![](https://img-blog.csdn.net/20170806173850997?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhlemhlXzk4NjA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
switch(表达式)
{
case 常量:
代码块;
case 常量:
代码块;
default:
代码块;
}
case语句中的值只能是整形或是字符型;
case语句排列顺序分析 按字母或数字顺序排列各条语句 正常放前面 异常放后面
default语句只用于处理真正的默认情况。
if 和switch对比分析 四点结论
#include <stdio.h>
void func1(int i)
{
if(i < 6)
{
printf("failed\n");
}
else if((6 <= i) && ( i <= 8))
{
printf("GOOD\n");
}
else
{
printf("perfect\n");
}
}
void func2(char n)
{
switch(n)
{
case 'A':
printf("perfect\n");
break;
case 'B':
printf("good\n");
break;
case 'C':
printf("pass\n");
break;
case 'D':
printf("failed\n");
break;
default:
break;
}
}
int main()
{
func1(1);
func2('A');
return 0;
}三、循环语句分析
通过条件表达式判定是否执行循环体 条件表达式遵循if语句表达式的原则
do语句至少执行循环体一次 while >= 0 次 for先判断 再执行 更简洁
例子分析:
#include <stdio.h>
int func1(int n)
{
int i = 0;
int ret = 0;
for(i = 0; i < n; i++)
{
ret += i;
}
return ret;
}
int func2(int n)
{
int ret = 0;
while ((n > 0) && (ret += n--));
return ret;
}
int func3(int n)
{
int ret = 0;
if(n > 0)
{
do
{
ret += n--;
}while(n);
}
return ret;
}
int main()
{
printf("%d\n", func1(101));
printf("%d\n", func2(100));
printf("%d\n", func3(100));
return 0;
}
do while存在的意义?下面例子:
int fun(int n)
{
int i = 0;
int ret = 0;
int *p = (int*)malloc(n*sizeof(int));
do
{
if( NULL == p)
break;
if(n < 0)
break;
for(i = 0; i < n; i++)
{
p[i] = i;
printf("%d", p[i]);
}
ret = 1;
}while(0);
free(p);
return ret;
}避免可能造成内存泄漏的情况。
break:终止循环的执行 跳出一个“块””包括 switch 和 循环
continue:终止本次循环 进入下一次循环
if语句用于根据条件选择执行语句;
else不能独立存在且总是与它最近的if相匹配;
else语句后可以连接其他if语句。
if(condition)
{
//statement1
}
else
{
//statement2
}if语句中零值比较的注意点:
(1)bool型变量应该直接出现于条件中,不要进行比较;
(2)普通变量和0值比较时,0值应该出现在比较符号左边;
(3)float型 变量不能直接进行0比较,需要定义精度。
情况1:
bool b = true; if( b ) { //statement1 } else { //statement2 }情况2:
int i = 0;
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:
代码块;
}
case语句中的值只能是整形或是字符型;
case语句排列顺序分析 按字母或数字顺序排列各条语句 正常放前面 异常放后面
default语句只用于处理真正的默认情况。
if 和switch对比分析 四点结论
#include <stdio.h>
void func1(int i)
{
if(i < 6)
{
printf("failed\n");
}
else if((6 <= i) && ( i <= 8))
{
printf("GOOD\n");
}
else
{
printf("perfect\n");
}
}
void func2(char n)
{
switch(n)
{
case 'A':
printf("perfect\n");
break;
case 'B':
printf("good\n");
break;
case 'C':
printf("pass\n");
break;
case 'D':
printf("failed\n");
break;
default:
break;
}
}
int main()
{
func1(1);
func2('A');
return 0;
}三、循环语句分析
通过条件表达式判定是否执行循环体 条件表达式遵循if语句表达式的原则
do语句至少执行循环体一次 while >= 0 次 for先判断 再执行 更简洁
例子分析:
#include <stdio.h>
int func1(int n)
{
int i = 0;
int ret = 0;
for(i = 0; i < n; i++)
{
ret += i;
}
return ret;
}
int func2(int n)
{
int ret = 0;
while ((n > 0) && (ret += n--));
return ret;
}
int func3(int n)
{
int ret = 0;
if(n > 0)
{
do
{
ret += n--;
}while(n);
}
return ret;
}
int main()
{
printf("%d\n", func1(101));
printf("%d\n", func2(100));
printf("%d\n", func3(100));
return 0;
}
do while存在的意义?下面例子:
int fun(int n)
{
int i = 0;
int ret = 0;
int *p = (int*)malloc(n*sizeof(int));
do
{
if( NULL == p)
break;
if(n < 0)
break;
for(i = 0; i < n; i++)
{
p[i] = i;
printf("%d", p[i]);
}
ret = 1;
}while(0);
free(p);
return ret;
}避免可能造成内存泄漏的情况。
break:终止循环的执行 跳出一个“块””包括 switch 和 循环
continue:终止本次循环 进入下一次循环
相关文章推荐
- C语言 if,switch,do,while,for分析
- if,switch,do,while,for分析
- if, switch, do , while, for分析
- 分支语句 循环语句 if,switch,do,while,for分析
- C语言中流程控制语句(if,switch,for,while,do-while,continue,break,return)
- 在不使用if,while,do...while,for,switch,?:等操作,实现函数void printLess(int k),返回小于k的所有整数
- if和switch语句、循环语句while和do……while、for
- 循环控制语句for while do-while if switch
- 黑马程序员————if、switch、while、for的使用分析
- 03-if.switch.do_while.for
- if条件和for循环语句、while、do..while、switch语法
- if,switch,while,do..while,for语句在JSP中的用法示例
- 专题一关键字的剖析----3.if,switch,do,while,for分析
- 流程控制语句(if,switch,for,while,do-while)
- C语言关键字--- if switch do while for
- Swift学习——使用if和switch来进行条件操作,使用for,while,和do-while来进行循环(三)
- Swift第三课 分支语句 if else for forin switch while do-while
- 【Swift】学习笔记(五)——控制语句(if,switch,for-in,for,while,do-while)
- 黑马程序员——选择结构if、switch,循环结构while、do-while、for
- if/switch/while/do while/for/等循环及判断的简要用法案例