c语言——分支和循环(1)

分支和循环(1)

1.分支语句

(1)if语句

      语法形式
if(表达式)
   语句 

若表达式成立(非0),则执行后面的语句,若为假(0),则跳过该语句不执行
如:

#include <stdio.h>
int main()
{
int a=3;
if(a==2)
{printf("haha");}
return 0;
}

因为表达式不成立,所以语句不会执行,如下图

在这里插入图片描述
注意:if语句后的表达式在没有花括号包围的前提下默认执行第一条语句,为了防止错误出现,我们一般在if后用花括号把表达式合在一起

2.else
如果if表达式错误,要把其他的情况再起一个语句,就可以利用else来完成。
注:else后面不需要套表达式,它执行的是除if外的所有情况

if(表达式)
   语句
else
   语句   

3.if的嵌套
在if else语句中,要想构成三个或三个以上的多重判断,可以用else if 来完成

if(表达式)
   语句
else if(表达式)
   语句
else
   语句

如果要更多判断,就再在else if 中嵌套。要注意的是,else if 中表达式范围是默认排除上面的if(或else if)表达式范围来执行,如:

#include <stdio.h>
int main(){
int age=0;  //初始化年龄
scanf("%d",&age);

if(age<18)
printf("未成年")else if(age<=44//默认在大于等于18岁的范围内框定范围,即18~44岁的范围内输出青年
printf("青年")else        //大于44岁
printf("中年或老年")return 0;}

注意:如果有多个 if 和 else ,默认 else 和最近的 if 匹配

#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;}

根据上面的提示,else应该和if(b==2)匹配,而这个if else 是嵌套在第一个 if 里面的,所以执行的结果为空在这里插入图片描述

(2)switch语句

switch语句是一种特殊形式的if…else语句,用于判断有多个结果的情况,相对else if的嵌套更好用

switch(整形表达式)
{
  case ?:语句
  case ?:语句
  default:语句
  }

根据switch表达式的值,对应不同的case(?),执行对应的语句,如果所有case值都找不到,则执行default。
例:

#include <stdio.h>
int main(){
int n=0;
scanf("%d",&n);
switch(n%3)
{
case 0:
  printf("余数为0\n");
  break;
case 1:
  printf("余数为1\n");
  break;
case 2:
  printf("余数为2\n");
  break;
}
return 0;}

注意:case后面要有空格,且每个case语句后面都要加break才能跳出switch语句。
反例:在这里插入图片描述
原本只打印余数为零,结果下面的全执行了

2.循环语句

(1)for循环

语法形式

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

表达式1:循环变量的初始化
表达式2:循环结束条件的判断
表达式3:每次循环变量值的改变

先执行表达式1(初始化),再进行语句,出语句时进行一次表达式3,再次进入循环时判断是否在表达式2的范围内,如果在,进行下一次循环,如果不在,跳出循环。

#include <stdio.h>
int main(){
int a=0;
for(a=0;a<4;a++)
{
printf("%d ",a);
}
return 0;}

接下来看执行的结果
在这里插入图片描述
当循环到a=4时,不满足表达式2,因此跳出循环

(2)while循环

语法形式

while(表达式)
{
表达式;
}

结构与 if 相似,但 if 只执行一次,while 可执行多次
例如:

#include <stdio.h>
int main() {
	int a = 0;
	while (a<4)
	{
		printf("hehe\n");
		a++;
	}
	return 0;
}

接下来看执行结果
在这里插入图片描述
此时执行了四次循环,如果是if的话只能执行一次

(3)do while循环

语法形式

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

与while不同的是,do while 循环无论表达式真或假,都会先执行一次,而 while 表达式如果为假,直接不执行
例如

#include <stdio.h>
int main() {
	int i = 1;
	do
	{
		printf("hehe\n");
	} while (i < 1);
	return 0;
}

上面的代码已知 i 为1(不小于1),表达式已为假,在 while 中应该什么都不打印,而在 do while 循环中会先执行一次,再判断表达式,我们看执行结果:
在这里插入图片描述

最后补充一个 goto 语句
当使用了 goto ,就是忽略下面的语句,直接进入要跳转的地方

#include <stdio.h>
int main()
{
	printf("hehe\n");
	goto abc;
	printf("haha\n");
abc:
	printf("嗯\n");
	return 0;
}

因为要跳转到abc,所以忽略了printf(“haha\n”);直接跳转到abc:,我们看执行结果在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值