【计算机408学习笔记】C语言(初级) 04选择、循环

04选择、循环

一、 选择if-else讲解
1.关系表达式与逻辑表达式
  • 双目运算符:左操作数+右操作数。
  • 单目运算符:只有一个操作数,如!。
  • 算术运算符的优先级高于关系运算符、 关系运算符的优先级高于逻辑与和逻辑或运算符, 相同优先级的运算符从左至右进行结合。
  • 例子: 5>3&&8<4-!0
2. if-else 语句
  • if 判断条件(表达式) 为真, 就执行某个语句, 反之不执行这个语句; 也可以 if 判断条件(表达式) 为真, 就执行某个语句, 反之用 else 分支执行另一个语句。
  • 例子
#include <stdio.h>


int main() {
    int i;
    while(scanf("%d",&i))
    {
        if(i>0)
        {
            printf("%d is bigger than 0\n",i);
        }else{
            printf("%d is not bigger than 0\n",i);
        }
    }
    return 0;
}
  • 结果
5
5 is bigger than 0
6
6 is bigger than 0
-3
-3 is not bigger than 0
0
0 is not bigger than 0
  • if 语句和 else 语句也可以多个同时使用(多分支语句), 无论有多少个 if 语句或 else if 语句, 程序都只会执行其中的一个语句。
  • 使用 if 嵌套语句时, 要考虑“悬空的 else” 问题。 和其他绝大多数语言一样, C 语言中的 else 子句从属于最靠近它的不完整的 if 语句。
  • 在 if 语句中的语句列表前后加上花括号, 可以防止不小心加了一句代码后, 使实际未被包含的语句被包含在某个 if 语句中的错误。
  • 例子
#include <stdio.h>

int main() {
    int number;
    float cost,total;
    while(scanf("%d",&number))
    {
        if(number>500) cost=0.15;
        else if(number>300) cost=0.10;
        else if(number>100) cost=0.075;
        else if(number>50) cost=0.05;
        else cost=0;
        total=number*cost;
        printf("total=%.2f",total);
    }
    return 0;
}
  • 结果
600
total=90.00
400
total=40.00
200
total=15.00
60
total=3.00
30
total=0.00
二、while、for、continue、break
1.循环while
  • “当型” 循环结构:先判断表达式, 后执行语句。
  • while(表达式) 语句;:当表达式的值非 0 时, 执行 while 语句中的内嵌语句。
  • while后面不能加分号, 否则虽然编译可以通过, 但是执行程序时会发生死循环。
  • 通常我们会将 while语句用花括号括起来, 就算 while 语句只有一句, 也会用花括号括起来, 这么做是因为一个程序往往会经过多次修改, 使用花括号可以让程序更加清晰, 避免向循环内添加语句时出错。
  • 例子
#include <stdio.h>


int main() {
    int i=1,total=0;
    while(i<=100)
    {
        total+=i;
        i++;//i+=1  用于跳出while循环
    }
    printf("%d %d\n",total,i);
    return 0;
}
  • 结果
5050 101
2.循环for
  • for(表达式 1;表达式 2;表达式 3) 语句;。
  • for 循环语句中必须且只能有两个分号, 用于分割表达式 1、 表达式 2 和表达式 3。
  • 表达式 1、 表达式 2、 表达式 3 也可省略, 省略写法用得较少。
  • 在 for 加分号不会死循环, 会结果不对。 (下述例子中结果为101 101,原因:for后添加分号后,循环执行表达式2、3,直到跳出循环,i结果为101,后执行{}中语句,赋值为total。)
  • 执行顺序:
    (1)先求解表达式 1。 表达式1只会被执行一次,一般用来进行变量初始化。表达式1可以通过逗号分隔写多个。
    (2)求解表达式 2,若其值为真(值为非 0),则先执行 for 语句中指定的内嵌语句,后执行第(3) 步。若其值为假(值为 0),则结束循环, 转到第(5)步。
    (3)求解表达式 3。
    (4)转回第(2) 步继续执行。
    (5)循环结束,执行 for 语句下面的语句。
  • 例子
#include <stdio.h>


int main() {
    int i,total;
    for(i=1,total=0;i<=100;i++)
    {
        total+=i;
    }
    printf("%d %d\n",total,i);
    return 0;
}
  • 结果
5050 101
  • for 循环的可读性要比 while 循环的好, 所以能使用 for 循环时不要强制改为 while 循环。
3.continue语句
  • continue 语句的作用:结束本次循环, 即跳过循环体中下面尚未执行的语句, 接着进行是 否执行下一次循环的判断
  • 例子
#include <stdio.h>


int main() {
    int i,total;
    for(i=1,total=0;i<=100;i++)
    {
        if(i%2==0)
        {
            continue;
        }
        total+=i;
    }
    printf("%d %d\n",total,i);
    return 0;
}
  • 结果
2500 101
  • 当 continue 用于 while和 do while 循环中时, 注意不要跳过让循环趋近于假的语句。
  • 例子
#include <stdio.h>


int main() {
    int i=1,total=0;
    while(i<=100)
    {
        if(i%2==0)
        {
            i++;//注意
            continue;
        }
        total+=i;
        i++;
    }
    printf("%d %d\n",total,i);
    return 0;
}
  • 结果
2500 101
4.break语句
  • break 语句的作用是结束整个循环过程, 不再判断执行循环的条件是否成立。
  • break 语句也可用在 while 循环和 do while 循环中, 起结束对应循环的作用。
  • 例子
#include <stdio.h>

int main() {
    int i,total;
    for(i=1,total=0;i<=100;i++)
    {
        if(total>2000)
        {
            break;
        }
        total+=i;
    }
    printf("%d %d\n",total,i);
    return 0;
}
  • 结果
2016 64//当i=64时,total不包含64
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

废柴老妈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值