【零基础学习C语言】(4)分支和循环·上

一 if 语句:

基本结构:

if(表达式)

   {

     语句1;//如果表达式为“真”,执行语句1

   }  

else

   {

     语句2;//如果表达式为“假”,执行语句2

   }

嵌套

基本结构只适用于两条支路,当支路存在三条或更多时

类型1:

if()
{
   if()
   {
    
   }

}
else
{

}

类型2:

if()
{

}
else if()
{

}

悬空else

else与最近的if配对

int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
			printf("hehe\n");
else
	printf("haha\n");
	return 0;
}

其结果为:haha,但这是错的

2a4d69609f7b47e1a5bc2b595c011b55.png

其真实结果为什么也不输出

将其对齐后则可看清其与那个if对齐:

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:表达式3

若表达式1为真,执行2

若表达式1为假,执行3

类似于if语句

if(a>5)                 

 {

   b = 3;

 }

else                    等于    a>5?b=3:b=-3

 {

   b = -3;

 }

三 逻辑操作符

&&:逻辑操作符

并且(同时满足)

aba&&b
111
100
010
000

                                                              (1为真 0为假)

||:逻辑或操作符

或者(至少一个满足)

aba||b
111
101
011
000

 

!:逻辑取反操作符

a!a
10
01

四 switch语句

属于分支语句,是一种特殊的if...else结构,用于判断条件有多个的情况。

基础结构

switch(expression)

{

case value1:statemen;

case velue2:statement;

...

default: statement;

}

根据表达式(expression)不同的值,执行相应的case分支(分别对应value1、value2......),如果找不到对应的值,就执行default。

注意:expresstion必须是整形表达式 value必须是整形表达式。

加入break;改进代码

示例:判断一个数除3后余的数

f08f9df911d9413fa5af02224ff4046c.png

问题:7%3=1 可出现了 “余数是2

分析:算出对应余数“1”后,对应case 1语句,运行后自动执行下一行语句“printf(“余数是2”)”

改进:增加break;(相当于暂停,后续会讲)

3cd962322a3045bba832f2ac105479fc.png

巧妙运用break

例:输入星期,判断是工作日还是假期

66802cbed45e47fca58050f663a90764.png

五 while

属于循环语句,类似于if语句,只不过while循环中,若表达式为真则进入循环,若为假,则离开循环。

基本结构:

while(表达式)

{

    语句;

}

应用:

练习1:打印1~10的值

a08f6c5bf8ae479cbaa83d684abcd3aa.png

练习2:输入一个正数,逆序打印每一位

例:输入1234 输出4 3 2 1

          cf56923fb90747499decc9505ccfdab1.png

分析:1234%10 = 4

           1234/10=123(整数类型,忽略小数点)

            以此类推(类似循环)

六 for循环

属于循环结构,用的最多

基本结构

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

{

语句;

}

 

表达式1:循环变量的体初始化

表达式2:循环结束条件的判断

表达式3:循环变量的调整

其三部分可以省略不写 如:for( ; ; ),但是判断部分被省略,判断恒为真,进入死循环

应用

练习1:打印1~10的值

836b81f77666400cbbc6d0f45f1a2b56.png

练习2:计算1~100之间计算2的倍数的数字之和

分析:(1)产生1~100的数字——>for循环

           (2)2的倍数——>if语句

           (3)求和sum = sum+i

6e6d5d1c7a9a405e81f523c27cb7052b.png

改进:直接生成2的倍数

for(i = 2;i<=100;i+=2)

3a408be471634e30bb0db99539da9ed2.png

七 do-while

循环结构,使用最少,先执行语句,在判断循不循环,即其循环体至少循环一次

基本结构

do

{

    语句;

}

while(表达式)

应用:

练习1:打印1~10的值

922e7709a8b540ffa6b5b17ca34b5dbd.png

练习2:输入正整数,计算整数是几位数?

例:输入1234  输出4

分析:不管输入几,位数至少为1,符合do while循环体至少执行一次的条件

597c8d9e8f7d4ed39525e86b01ae7413.png

八 break和continue语句

在循环执行的时候,如果发生某些状况,并需要提前终止循环的情况,就需要break或continue

break

用于永久的终止循环,表示直接跳出循环,继续往后运行。

例:

a7cbfb87d2fd42089ffd93b575e2b95c.png

if i=5,break打破循环

continue

用于跳过本循环,并进入下一循环。

de52be23388b426ea4f84fec2d563c09.png

问题:经过continue后本应打印“1 2 3 4 6 7 8 9 10”,结果只打印了“1 2 3 4”

分析:i=4经过一个i++后i = 5,i=5时,执行continue,跳出循环(包括i++),所以进入下一循环时,i依旧等于5,进入死循环

改进:

c5a2c9a634464478a39cc0dd60973f02.png

九 循环的嵌套

找出1~100之间的素数,并打印出来(素数:只能被1和本身整除的数字)

分析:1.产生1~100

           2.判断是否为素数

              (1)使用2~i-1之间的数组去除i

                         for(j=2;j<=1-1;j++)

74ce9eb0781f4e65b498dd01b6dc4310.png

十 goto语句

循环语句,可实现在同一个函数内跳转到设置好的标点处。

基本结构

……:

表达式;

goto……

 

例:
928be56bfc764bc7a79f3c4283a55164.png

注意:goto语句存在风险不建议使用

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值