C语言分支循环语句

本文详细介绍了C语言中的条件语句(if-else,关系操作符,条件操作符,逻辑操作符,switch),以及循环语句(while,for,do-while)的语法、用法和注意事项,包括break和continue的特殊作用,以及对goto语句的合理运用和潜在问题的警示。

一、选择语句

        1.1 if……else 语句

        if ,else语句的语法形式如下:

if (表达式1)
{
    语句1;
    …………
}
else if(表达式2)
{
    语句1;
    …………
}
else
{
    语句1;
    …………
}

        在C语言中0表示假,非0表示真。else在匹配的时候遵循就近原则,与离他最近的if匹配。例如一下程序结果为什么都不打印。if+else合起来是一条语句。

#include <stdio.h>
int main()
{
 int a = 0;
 int b = 2;
 if(a == 1)
     if(b == 2)
     printf("hehe\n");
 else
     printf("haha\n");
 return 0;
}
        1.2 关系操作符

        注意:==与=好的区别,==是判断是否相等,=是用于赋值。

        1.3 条件操作符
exp1 ?exp2:exp3

        如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果 exp1 为假, exp3 计算,计算的结果是整个表达式的结果。

        1.4 逻辑操作符

        && 与 ||,注意短路现象,对于&& 若左边为假,右边无需计算,整体为假。对于||若左边为真,右边无需计算,整体为真。例子如下

#include <stdio.h>
int main()
{
 int i = 0,a=0,b=2,c =3,d=4;
 i = a++ && ++b && d++;//a=1 b=2 c=3 d=4 i=0
 //i = a++||++b||d++;//a=1 b=3 c=3 d=4 i=1 
 printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
 return 0;
}
        1.5 switch语句

        语法形式如下:

switch (expression) {
 case value1: statement
 case value2: statement
 default: statement
}

        注意:在每一个case对于break 的使用,如果某⼀个 case 语句的后边没有 break 语句,代码会继续往下执⾏,有可能执⾏其他 case 语句中的代码,直到遇到 break 语句或者 switch 语句结束。如果switch 后的表达式中的值⽆法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊ default ⼦句。default与case的顺序并没有明确的规定要求,但一般都把default放在最后。

二、循环语句

        2.1 while循环

        while循环语法形式如下:

while(表达式)
{
    语句1;
    …………
}
        2.2 for循环 

        for循环语法形式如下:

for(表达式1; 表达式2; 表达式3)
{
    语句1;
    …………
}

        for循环的初始化、调整、判断三个部分可以省略,但是如果判断部分省略,意味着条件很成立,则会陷入死循环。 

        2.3 do-while 循环

        do-while 循环语法形式如下:

do
{
    语句1;
    …………
}while(表达式);

        注意 :三种循环当中,do-while循环特别点为:先直接进入循环体,至少执行一次。即先执行在判断。而while,for循环是先判断在循环。

        2.4 break和continue语句

        break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执 ⾏。continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所差异的。

        while循环中,continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接到循环的判断部分,进⾏下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成死循环。do-while 语句中的 break 和 continue 的作⽤和 while 循环中⼏乎⼀模⼀样。

        for循环中 continue 的作⽤是跳过本次循环中 continue 后的代码,直接去到循环的调整部分。未来当某个条件发⽣的时候,本次循环⽆需再执⾏后续某些操作的时候,就可以使⽤ continue 来实现。

        

三、goto语句

        C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。举例如下:

#include <stdio.h>
int main()
{
 printf("hehe\n");
 goto next;
 printf("haha\n");
 
next:
 printf("跳过了haha的打印\n"); 
 return 0;
}

        注意:goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建 议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出 使⽤goto 就⾮常的⽅便了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值