c语言基础概念(2)
来源:互联网 发布:windows 10掌机 编辑:程序博客网 时间:2024/04/29 04:36
3.
分支语句分析 --if
if语句用于根据条件选择执行语句
else不能独立存在且总是与它最近的if相匹配
else语句后可以接连其他if语句。
if(codition)
{
//statiement 1
}
else
{
//statement 2
}
if语句中零值比较的注意点
bool型变量应该直接出现于条件中,不要进行比较
普通变量和0值比较时,0值应该出现在比较符号左边
float型变量不能直接进行0值比较,需要定义精度。
bool b=TRUE;
if(b)
{
//statement 1
}
else
{
//statement 2
}
int i = 1;
if(0 == i)
{
//statement 1
}
else
{
//statement 2
}
#define EPSINON 0.0000001
float f = 0.0;
if((-EPSINON <= f) && (f<=EPSINON))
{
//statement 1
}
else
{
//statement 2
}
分支语句分析 -- switch
switch语句对应单个条件多个分值的情形
每个case语句分支必须要有break,否则会导致分支重叠
default 语句有必要加上,已处理特殊情况
switch(表达式){
case 常量:
代码块
case 常量
代码块
default:
代码块
}
分支语句分析 -- switch
case语句中的值只能是整型或字符型
case语句排列顺序分析
按字母或数字顺序排列各条语句
正常情况放在前面,异常情况放在后面
default语句只用于处理真正的默认情况。
分支语句分析:
小结:
if语句实用于需要“按片”进行判断的情形中
switch语句实用于需要对各个离散值进行分别判断的情形中。
if语句可以安全从功能上代替switch语句,但switch语句无法替代if语句
switch语句对于多分支判断的情形更加简洁。
循环语句分析:
通过条件表达式判定是否执行循环体
条件表达式遵循if语句表达式的原则
do,while,for的区别
do语句先执行后判断,循环体至少执行一次
while语句先判断后执行,循环体可能不执行
for语句先判断后执行,相比while更简洁。
#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');}
#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--) ); return ret;}int f3(int n){ int ret = 0; if( n > 0 ) { do { ret += n--; }while( n ); } return ret;}int main(){ printf("%d\n", f1(10)); printf("%d\n", f2(10)); printf("%d\n", f3(10));}
循环语句分析:
break和continue的区别:
break表示终止循环的执行
continue表示终止本次循环体,进入下次循环执行。
#include <stdio.h>#include <malloc.h>int func(int n){ int i = 0; int ret = 0; int* p = (int*)malloc(sizeof(int) * n); do { if( NULL == p ) break; if( n < 0 ) break; for(i=0; i<n; i++) { p[i] = i; printf("%d\n", p[i]); } ret = 1; }while(0); free(p); return ret;}int main(){ if( func(10) ) { printf("OK"); } else { printf("ERROR"); }}
0 0
- c语言基础概念(2)
- C语言基础指针概念
- c语言基础概念(3)
- C语言---基础概念和常识
- C1 C语言的基础概念
- iOS开发-C语言-基础概念
- 【C语言提高31】数组基础概念
- C语言基础(2)
- 20161217C语言基础20_指针的基础概念
- C语言递归的基础和数据结构的初步概念
- 黑马程序员————C语言基础概念
- C语言模糊基础概念之强制类型转换
- c/c++语言基础——杂七杂八概念
- 这些C语言基础的重要概念一定要弄懂!
- 这些C语言基础的重要概念一定要弄懂
- c语言基础 2
- c语言基础 (2)
- c语言基础2
- 关于Office web apps的问题:写CheckFileInfo服务时遇到的问题
- 扣丁学堂笔记第26天云平台、Git与Linux
- stl -- 适配器
- [线段树] BZOJ 4491 我也不知道题目名字是什么
- Mysql表的分区实现
- c语言基础概念(2)
- Android开发文档翻译之-Services
- 在js中的改进版的冒泡排序法 和 二分查找法
- 从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题
- bzoj 1529
- 利用jdk 工具构建webservice 的server 和 client
- android studio gradle有什么优势,怎么构建android应用,什么是gradle
- #2JAVA面向对象之封装#
- IT职业发展路线图