c语言基础概念(2)



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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值