初识选择语句和循环语句

算法的基本控制结构有三种:顺序结构、选择结构和循环结构。其中顺序结构就是平常编写程序时,一条条代码按顺序执行。这里要介绍的是选择语句和循环语句。推荐画出流程图来进行理解。

1.选择语句

  当面临两者中间进行二选一时,通常使用if...else...选择语句,

#include <stdio.h>
int main()
{
    int a = 1;
    int b = 2;
    if (a < b)
        printf("1.a比b小\n");
    else
        printf("1.a比b大\n");
    if (a > b)
        printf("2.a比b大\n");
    else
        printf("2.a比b小\n");
    return 0;
}

if后面接一个表达式,当表达式正确时,就接着执行后面的程序,跳过else后面跟着的程序,当if后表达式错误时,则执行else后面的语句,跳过if后的语句,就像是做出一种选择,称之为选择语句。

如果进行选择中,还需要进行选择的话,可以用嵌套的if语句,需要注意的是if和else一一对应,前万不能对应错了,else对应最邻近的if,然后再下一个else,对应上一个if;

int main()
{
    int a = 1;
    int b = 2;
    if (a != b)
        if (a < b)
            printf("a小于b");
        else
            printf("a大于b");
    else
        printf("a等于b");
    return 0;
}

这里仅执行了”a小于b“这个语句,其他的都跳过了;

以上是面临两个选择时,那当面临多选择结果时,可以用if...else if...else...语句进行选择;只要选择足够多,可以接多个else if 语句,也就实现了多种情况, 

int main()
{
    int a = 2;
    int b = 2;
    if (a < b)
        printf("a小于b");
    else if (a > b)
        printf("a大于b");
    else
        printf("a等于b");
    return 0;
}

 

 以上是用于需要多次进行判断是否属于当前情况的语句,每一次if后面都需要进行判断表达式是否正确,再执行选择的结果。而有的问题中,虽然需要面临多次判断,但每一次判断都是判断同一表达式值的时候,没必要每一次都嵌套if语句,计算一次表达式的值,c++中就用switch语句来进行处理。switch语句的执行顺序是:先计算switch语句中表达式的值,然后在列举的case语句中寻找常量相同的表达式,选择并开始执行,如果没有相对应的情况,则从default开始执行,
int main()
{
    int i = 0;
    scanf("%d", &i);
    switch (i)
    {
    case(0):
        printf("你输入了0");
        break;
    case(1):
        printf("你输入了1");
        break;
    default:
        printf("你没有输入0和1");
    }
    return 0;
}

需要注意的是case语句仅作为入口标号,即开始执行程序,但其没有执行的终止点,当执行结束时,需要加上break,来结束整个switch结构,否则会一直执行到switch的结束点,如图所示,注释掉break后,程序由case1入口进入,执行完后面所有代码。
int main()
{
    int i=0;
    scanf("%d", &i);
    switch (i)
    {
    case(0):
        printf("你输入了0");
        //break;
    case(1):
        printf("你输入了1\n");
        //break;
    default:
        printf("你没有输入0和1\n");
    }
    return 0;
}

2.循环语句

循环语句顾名思义就是循环执行一些代码,其和选择语句很相似,通过某个表达式来进行判断是否继续循环。一直重复执行的代码部分称其为循环体,在循环体中需要存在改变循环条件的某个量,当程序执行循环到一定程度时,会结束循环,否则便会造成无限循环(死循环)。

 在C++中有3种循环控制语句:分别是while语句,do...while语句,和for语句。

while语句中while后面跟表达式,当表达式内容为true时,执行循环体内容,否则结束while语句,或结束循环。

int main()
{
    int i = 0;
    int sum = 0;
    while (i < 9)
    {
        sum = sum + i;
        printf("此时i为%d,sum为%d\n", i, sum);
        i++;
    }
    return 0;
}

 

这是 通过循环实现1~8的一个求和,每个循环先判断再执行,而do...while...语句则是先执行循环体,再判断表达式,为true则执行循环体,为false则结束循环,是否先执行循环体是do...while和while的区别所在。

 int main()
{
    int i = 0;
    int sum = 0;
    do
    {
        sum = sum + i;
        printf("此时i为%d,sum为%d\n", i, sum);
        i++;
    } while (i < 1);
    return 0;
}

第三种循环结构为for语句,其使用最为灵活,既可以用于循环次数确定的情况,也可以用于循环次数未知的情况。其执行流程是首先执行初识语句,再计算表达式(循环控制条件),并根据值来判断是否执行循环体。如果表达式值为true则执行一次循环,表达值为false则退出循环。

int main()
{
    int i = 0;
    int sum = 0;
    for (i; i < 9; i++)
    {
        sum = sum + i;
        printf("此时i为%d,sum为%d\n", i, sum);
    }
    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值