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
原创粉丝点击