简述C语言分支循环语句

本篇介绍以下C语言控制语句:

1.条件判断语句也叫分支语句:if语句,switch语句;

2.循环执行语句:do while语句,while语句,for语句;

3.转向语句也叫跳转语句:break语句,continue语句。

(咱不怕,没啥技术含量,其实,也就那回事儿);

1.1 if条件语句

    if条件语句分为3种语法格式,每一种都有其特点,下面分别讲解。

1.1.1  if语句

    例如,小明妈妈跟小明说:“如果考试100分,就给你换手机。”

我们可以理解为:

    如果小明考试得100分;

    妈妈给他换手机;

上述中的”如果“相当于” if “,”妈妈给换手机“就是执行语句,需放在{ }中。

    if (小明考了100)

{

        妈妈给换手机

}

我们最终将理解为:

    if (判断条件)

{

        执行语句

}

判断条件的值只能是0或非0,对应真或假。实例为:

if(x<10)

{

        x=x+1;

}

如果x小于10是真的,则x的值+1

1.1.2  if...else 语句

基于上述理解,我们再增加一个分支:if如果满足条件,则执行相应处理,else否则就进行另一种处理。

if(num%2==0)

{

        printf(”数字%d是一个偶数\n",num);

}

else

{

        //判断上边的 ” if “ 条件不成立

        printf(“数字%d是一个奇数\n“,num);

}

1.1.3  if...else if...else

为了满足人们更多需要,我们需要多条判断语句,从而对不同情况进行不同处理。

if(判断条件1)

{

        执行语句1;

}

else if (判断语句2)

{

        执行语句2;

}

else if (判断条件n)

{

        执行语句n;

}

else

{

        执行语句n+1;

}

好,接下来代入实例:

假设学生成绩grade为90分,它满足第一个条件grade>=80,直接打印“该成绩为优”

if(grade>=80)

{

        //满足条件grade>=80

        printf("该成绩为优\n”);

}

else if(grade>=70)

{

        //不满足条件grade>=80,但满足条件grade>=70

        printf("该成绩为良\n");

}

else if (grade>=60)

{

        //不满足条件grade>=70,但满足grade>=60

        printf("该成绩为中\n");

}

else

{

        //不满足条件grade>=60

        printf("该成绩为差\n");

}

注意:其中多条执行语句中,只要有一个执行语句因为判断语句满足条件而被执行,则不执行其他与他对其的执行语句

1.2  switch 条件语句

    对于switch语句,我们可以抽象的把 “ if ” 语句中的判断语句换成1,2,3......98............。也就是说如果一个式子,一个数字,一个你输入的数......等于你创建的switch语句中对应的那个数字,则执行对应式子下方的执行语句。上实例:

switch (week)          //也可以理解为switch(表达式)

{

case 1:

        printf("星期一\n");

        break;               //这里可直接看3.1关于break的内容

case 2:

        printf("星期二\n");

        break;

case 3:

        printf("星期三\n");

        break;

case 4:

        printf("星期四\n");

        break;

case 5:

        printf("星期五\n");

        break;

case 6:

        printf("休息日\n");

        break;

case 7:

        printf("休息日\n");

        break;

default:

        printf("输入的数字不正确\n");

        break;

}

如果switch括号中的week函数=1,则打印星期一,如果week=6,则打印休息日。

当然我们把1,2,3,4,5视为工作日,6,7视为休息日时就可写为:

switch(week)

{

case 1:

case 2:

case 3:

case 4:

case 5:

        //当week满足值1,2,3,4,5中任意一个时,打印

        printf(”今天是工作日\n");

        break;

case 6:

case 7:

        //当week满足6,7任意一个时,打印

        printf("今天是休息日“);

        break;

}

2.1 while  循环

while和if相似区别在于while会反复判断,”判断语句“是否为真,一直到判断语句为假时停止。

while(i<=fac)

{

        res=res*i;

        i++;

}

while循环中变量i每次计算乘积后自增1,当i的值大于fac时退出循环。

下面是一个运用switch语句和do...while循环做的小游戏,可增加理解

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
    printf("*****************************\n");
    printf("****1.play*****0.exit********\n");
    printf("*****************************\n");
}
void game()
{
    int ret = 0;
    int num = 0;
    ret = rand() % 100 + 1;
    while (1)
    {
        printf("猜数字\n");
        scanf("%d",&num);
        if (num > ret)
        {
            printf("猜大了\n");
        }
        else if (num < ret)
        {
            printf("猜小了\n");
        }
        else
        {
            printf("猜对了\n");
            break;
        }
    }
}
int main()
{
    int input = 0;
    srand((unsigned int)time(NULL));
    do
    {
        menu();
        printf("请选择:");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();           //根据菜单内容玩家选择玩或者退出,input变量=1,则执行game()
            break;             //程序,input=0,则打印退出游戏并退出。
        case 0:
            printf("退出游戏\n");
            break;
        default:                           //default代表玩家输入的既不是1也不是0,则执行default下的程序。
            printf("选择错误\n");   
            break;
        }
    } while (input);
    return 0;
}

2.2  do...while 循环

和之前不同,do...while语句会无脑先把while执行一遍,再对while括号中的判断语句进行判断(和while一样的原理)

do

{

        res=num%10;              //取末尾第一个数

        printf("%d",res);

        num=num/10;              //整除,把最后一位的数去掉

}  while (num !=0 )               //直到num为0,(0不等于0),这句话时错的,是假的时退出循环。

我们在编写一个小游戏时通常要先将程序执行一遍,再根据玩家所选内容判断要不要执行循环玩游戏,这时do...while的作用就体现出来了。之后我还会发编写其他小游戏的相关文章。

2.3  for 循环

它通常用在循环次数已知,或我想让其循环几次的情况。

for(初始化表达式;循环条件(判断条件);操作表达式)

{

        执行语句

}

在计算机看来,1,执行初始化变量

2,判断条件为真,为非0,则执行”执行语句“,然后运行操作表达式。

3,判断条件为假时退出循环。

上实例:

for(int i=0 ; i<=100 ; i++)               //i的值会在执行完sum+=i后自加1,如此循环,只到i=100,i再

{                                                       //次自加为101时不满足i<=100时退出循环

        sum+=i ;

}

例如我们可以借此打印乘法口诀表:
#include<stdio.h>
int main()
{
    int i = 0;
    for (i = 1; i <= 9; i++)
    {
        int j = 0;
        for (j = 1; j <= i; j++)
        {
            printf("%d*%d=%d  ", i, j, i * j);
        }
        printf("\n");
    }
}

3.1  break 语句

break打破,也可以理解成跳出,在循环中有这直接跳出循环的作用(是直接跳出循环整段程序,不是只跳过一次循环)在switch语句中也有跳出switch整段程序的作用。

while(x<=4)

{

        printf("x=%d\n",x);

        if(x==2)

        {

                break;

        }

        x++;

}

上述代码中while循环打印x的值(假设x初始值为0),当x值为2时,遇到break跳出循环,因此只会打印x=0,x=1,x=2,不会打印x=3,x=4

3.2  continue  语句

break跳出整段循环程序,而continue是跳过本次循环,不执行continue之后的程序,直接进行下一次循环,

for(int i=1;i<=100;i++)                               //这段代码的目的在于打印1到100中的奇数,也就是

{                                                                     //不能被2整除的数。

        if(i%2==0)

        {

                continue;                                       //凡是可以被2整除的数都会执行到continue,而

        }                                                             //continue会跳过本次循环不让其执行到下边的printf。

        printf("%d",i);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值