C语言中分支与循环(一)

(1)if语句

“首当其冲”肯定就是if,大概形式是:

                                         

其中()中表达式为真及非零,则执行后面的语句,如果为假及为零,不执行后面的语句。如果有else则为一个分支语句,当不满足if后面的表达式,就判断是否满足else后的表达式,为真就执行,为假就不执行,例如下面这个例子:

                                                     

也就是当输入值小与18就输出else语句中的“未成年”;还有,不加大括号的话,if 和else 默认控制一条语句;

嵌套if,if与离他最近的else组和匹配,因此要注意不能让else悬空,找不到匹配的if;

例如下面这个例子:第二个则是第一个加了大括号,更清楚明了

(2)关系操作符

< ;> ;<= ;>= ;== ;!= 

首先注意==和=不同,==是判断是否相等,而=是赋值;!=是和表达结果相反,及如果相等及为假,不相等为真;多个关系运算符不宜连用,例如:

i<j<k;(错)                应该为         i<j&&j<k

(3)条件操作符

形式如下  exp ?exp2 :exp3  ;  如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果 exp1 为假,exp3 计算,计算的结果是整个表达式的结果。例如:

当a大于5时,输出3,小于5时,输出-3;

(4)逻辑操作符

&&,||,!

!:逻辑取反运算符(改变单个表达式的真假)。

&&:逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。

||:逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。在&&和||中存在“短路”现象,例如

当month输入为0是及判断month>3为假,则不执行后面语句month<5;

(5)switch语句

switch与if对比,两个等效,例如:

注意:case后面的数字之间必须有空格;每⼀个 case 语句中的代码执⾏完成后,需要加上语句中 break ,才能跳出这个switch语句。如果没有break则会一直执行后面的语句,直到结束;例如:

输入1到5就会打印“工作日”,6,7则会打印休息日;

代码中的 switch 后的表达式中的值⽆法匹 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊ default ⼦句,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。例如:

(6)while循环

⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语 句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。例如:

这就是一个打印1-10的循环,判断为i<=10,当i>10则跳出循环;

(7)for循环

for(表达式1;表达式2;表达式3)

表达式1⽤于循环变量的初始化 ; 表达式2⽤于循环结束条件的判断,如:=>,<; 表达式3⽤于循环变量的调整,如++,--;例如:打印1-10(与上面那个while循环结果一样)

但是for 循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候while 循环的三个部分就⽐较分散,所以从形 式上 for 循环要更好⼀些。

(8)do-while循环

d o while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执行while后的判断表达式为真,就会

进⾏下⼀次,表达式为假,则不再继续循环。 特点就是会先执行一次,在判断;例如:

(9)循环中的break和continue

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

break:

打印了1,2,3,4后,当i等于5的时候,循环在 break 的地方终止,不再打印,不再循环。

contniue:

#include<stdio.h>
int main()
{
  int i=0;
  while(i<10)
  {
   if(i==5)
    continue;
   printf("%d",i);
   i=i+1;
  }
 return 0;
}

 continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接到循环的判断部分,进⾏下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成死循环。

(10)goto语句

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

goto 语句和跳转标号, goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值