还不会分支与循环语句吗,这篇文章让你从从此掌握分支与循环语句!!!


 前言:首先我们要知道分支与循环语句一共有九类,他们也被统称为控制语句,从而实现顺序结构,选择结构,循环结构的的程序编写。我们又可以把他们细分为三大类:分支语句,循环语句,转向语句。

分支语句包括:if语句,switch语句

循环语句包括:while语句,for语句,do... while语句

转向语句中包括:break语句,continue语句,goto语句(本篇文章未讲),return语句(本篇文章未讲)

 1.if语句

1.1 单独的if语句

基本语法形式如下:

if(表达式)

     语句;

如果表达式为真(非0),就会执行下面的一句,表达式为假(0),就不会执行语句。/*在c语言中1表示为真0表示为假*/

1.2 if ...else...语句

基本语法形式如下:

if(表达式) 

    语句1;

else

    语句2;

如果表达式为真(非0),就会执行语句1,表达式为假(0),就会执行语句2。

1.3分支中包含多条语句

C语言中默认if和else语句中都只能控制一条语句,如果我们想要他们控制多条语句时候我们该怎么办呢?哈哈很简单的,把控制的语句放在{}中就可以实现啦。

例如:

#include<stdio.h>

int main()

{

        if()

        {

                printf("代阳说:");

                printf("我爱陶");

        }

        else

        {

                printf("如果陶不喜欢代阳");

                printf("代阳还是喜欢陶");

        }

        return 0;

}

 1.4嵌套if

我们生活中常常有很多选择,远远可能大于2个以上,那我们又想要用if语句来编写,那怎么办呢?

if嵌套可以来解决。

if...else...语句中,else可以与另一个if语句连用,构成多重判断。

例子:

if()

{

        语句1;

        语句2;

}

else if

        {

                语句3;

                语句4;

        }

        ......

        else

        {

                语句5;

        }

#include<stdio.h>
int main()
{
    int a;
    printf("请陶输入:1, 2,3");
    while (scanf("%d",&a)!=EOF)
    if(a==1)
    {
        printf("陶答应做代阳女朋友");
        
    }
    else if(a==2)
         {
                printf("陶不得不答应做代阳女朋友");

         }
         else
         {
             printf("代阳强迫陶不得不答应做代阳女朋友");
         }
     return 0;
}

2.  switch语句

2.1 switch 实现分支结构的基本结构

其实switch和if都是用来实现分支结构的,不过switch比较特殊,它可以实现多条分支的判断。在多条分支的判断中switch比if嵌套形式呈现的更加清楚,容易解读。但是不代表多条分支的判断我们都盲目的用switch语句,switch语句也有自己的缺点。

基本结构形式如下

switch(expression)

 {

         case value1: statement

        case value2 : statement

        ......

        defalut:statement

}

 注意几个点:

1:  expression必须为整型表达式

2: case 后面的值必须为整型常量表达式/*在c语言中字符常量表方式也归为整型*/

3: case和后面的值必须空一格,值与“:”可以空格也可以不空格,例如:case 1:或case 1 :

2.2将if嵌套语句程序转化为switch语句

接下来让我把上面写的if嵌套语句转化为switch语句,如下:

#include<stdio.h>
int main()
{
    int a;
    printf("请陶输入:1, 2,3");
    while (scanf("%d",&a)!=EOF)
    switch(a)
    {
    case 1: printf("陶答应做代阳女朋友\n"); break;
    case 2: printf("陶不得不答应做代阳女朋友\n"); break;
    case 3  printf("代阳强迫陶不得不答应做代阳女朋友\n"); break;
    }
    return 0;
}

是不是一幕了然了,细心的小伙伴肯定看到后面多个break:下面我们开始讲讲这个break的作用

2.3 switch语句中的break

如果在switch语句中不加入break,那么当输入当陶1时候打印会出现:

陶答应做代阳女朋友
陶不得不答应做代阳女朋友

代阳强迫陶不得不答应做代阳女朋友
 

显然如果  case 1: printf("陶答应做代阳女朋友\n");后面没有break,程序会往下接着运行,所以break在这里是终止程序运行。

2.4 switch语句中的default

defsult语句是在所有情况都不满足时候执行的,现在让我们修改下上面的程序:

#include<stdio.h>
int main()
{
    int a;
    printf("请陶输入:1, 2,3");
    while (scanf("%d",&a)!=EOF)
    switch(a)
    {
    case 1: printf("陶答应做代阳女朋友\n"); break;
    case 2: printf("陶不得不答应做代阳女朋友\n"); break;
    case 3  printf("代阳强迫陶不得不答应做代阳女朋友\n"); break;    
    defalut:printf("你输入错啦,请输入1或2或3");
    }
    return 0;
}

这样当陶输入其他数字时候,就可以提醒她重新输入。 

2.5 switch语句中的default和case的顺序问题

注意case和defalut是没有顺序要求的,只是大家习惯于case后面加defalut。只要符合语法规定,defalut可以在case前面。

3. while语句

3.1 while语句的基本形式

基本形式如图:

while(表达式)

         { 

        语句;

         }

 表达式的值为1,执行语句,表达式值为0,不执行语句。

3.2 while语句的基本执行流程

执行流程:

4. for语句

4.1for语句的基本形式

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

{

语句;

}

表达式1:初始化,程序中只进行一次。

表达式2:用于程序的判断

表达式3: 用于程序的调整

4.2while语句的基本执行流程

 5. do while语句

5.1 do while语句的基本形式

do

{

   语句;

}

while(表达式);

这个语句不管判断真假都会先执行一次语句。

while(表达式);后面有一个“;”,不要忘了哦

5.2 do while语句的基本执行流程

6. break语句和continue语句 

前言:break的作用是用于永久的终止循环,只要break被执,循环跳出,继续往后执行,Continue语句的作用跳过本次循环中的continue后边的代码,在for语句和while中有差异。

6.1while中的break语句和continue语句

与前言中描述的一样

6.2for中的break语句和continue语句

break语句和前言中描述的一样,但是continue有些区别:

#include<stdio.h>
int main()
{
    int a = 0;
    while(a<=10)
    {
        if(a==5)
        continue;
        printf("第%d天喜欢陶\n",a);
        a++;
    }
return 0;
}    

#include<stdio.h>
int main()
{
    int a = 0;
    for(int a =0;a<=10;a++)
    {
        if(a==5)
        continue;
        printf("第%d天喜欢陶\n");
    }
return 0;
}    

 

大家可以看到在while循环中程序陷入了死循环,在for打印的全部的内容,这是因为两个语句调整的顺序不一样,while语句中a++调整部分在continue后面,当第一次a等于5时候if语句成立跳出循环,然后判断a<=10,再次进入循环,a==5 if语句成立再次跳出循环,陷入死循环。for语句中当第一次a等于5时候if语句成立跳出循环,然后会直接跳到调整部分(a++),然后a==6,再次进行判断,后面大家应该都懂

6.3 do...while语句中的break和Continue语句

与前言中描述的一样

7.循环的嵌套

7.1三种循环的嵌套

输入100~200范围数字的全部素数

#include<stdio.h>
#include<math.h>
int main(){
int i = 0;
int count = 0;
for (i = 101; i <= 200; i=i+2)
{
	int j = 0;
	int flag = 1;
	for (j = 2; j <=sqrt(i); j++)
	{
		if (i % j == 0)
		{
			flag =0;
			break;
		}
	}
	if (flag == 1)
		{
			printf("%d是素数\n",i);
			count++;
		}	
		
	
}
printf("素数有%d个",count);
return 0;
}

总结:学会啦把,记着点赞哦!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值