Loading

[Re] 基本语句&选择&循环

基本语句

表达式语句

  • C 程序设计语言的表达式语句由表达式加上分号 ; 组成
  • 分别由以下几种类:算术表达式、赋值表达式、逗号表达式、关系表达式、逻辑表达式 等...
  • 其一般形式为:表达式;
  • 执行表达式语句就是计算表达式的值

空语句

  • 空语句是什么也不执行的语句,一般由分号 ; 或大括号 {} 组成
  • 在程序中空语句可用来作空循环体
  • 一般推荐使用大括号 {} 来表示空语句,这样更直观

复合语句

  • 把多个语句用括号 {} 括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句。
  • 复合语句内的各条语句都必须以分号 ; 结尾;此外,在括号 } 外不能加分号。

输入输出函数的调用

printf

printf 是输出一个字符串

scanf

scanf 通过 % 转义的方式可以得到用户通过标准输入设备输入的数据

#include <stdio.h>

int main(void) {
    char ch1;
    char ch2;
    char ch3;
    int a;
    int b;

    printf("请输入ch1的字符:");
    ch1 = getchar();
    printf("ch1 = %c\n", ch1);

    getchar(); // 测试此处getchar()的作用

    printf("请输入ch2的字符:");
    ch2 = getchar();
    printf("ch2 = %c\n", ch2);

    getchar(); // 测试此处getchar()的作用

    printf("请输入ch3的字符:");
    scanf("%c", &ch3); // 参数2一定是变量的地址! 而不是变量名
    printf("ch3 = %c\n", ch3);

    printf("请输入a的值:");
    scanf("%d", &a);
    printf("a = %d\n", a);

    printf("请输入b的值:");
    scanf("%d", &b);
    printf("b = %d\n", b);

    return 0;
}

选择结构

if

  • if
  • if ... else ...
  • if ... else if ... else ...

switch

#include <stdio.h>

int main(void) {
    char c;
    c = getchar();

    switch (c) { // 参数只能是整型变量
        case '1':
            printf("OK\n");
            break; // 如果不加 break,就会出现 "case穿透"
        case '2':
            printf("not OK\n");
            break; // 遇到 break 就跳出
        default: // 如果上面的条件都不满足,执行 default
            printf("are u ok?\n");
    }
    return 0;
}

三目运算符

表达式 ? 值1 : 值2

表达式为 true → 值1;表达式为 false → 值2

循环结构

for

案例:从 1 到 100 内的数,凡是7(个位带 7 或者十位带 7) 或 7 的倍数需要敲桌子

#include <stdio.h>
int main(void) {
    int i;
    for(i=1; i<=100; i++) {
        // 需要判断个位带7 或者 十位带7 或者 7的倍数
        if(i % 7 == 0 || i % 10 == 7 || i / 10 == 7) {
            printf("敲桌子\n");
        } else {
            printf("%d\n",i);
        }
    }
    return 0;
}

while、do...while

while

案例:水仙花数

#include <stdio.h>
int main(void) {
    int i = 100;
    int a, b, c;
    while(i <= 999) {
        // 拆解个位、十位、百位
        a = i / 100; // 百位
        b = i / 10 % 10; // 十位
        c = i % 10; // 个位

        // 判断是否是水仙花数
        if (a*a*a + b*b*b + c*c*c == i)
            printf("水仙花: %d\n", i);

        i++;
    }
    return 0;
}

do ... while

#include <stdio.h>
#include <math.h>

int main(void) {
    int i = 100;
    int a, b, c;

    do {
        a = i / 100;
        b = i / 10 % 10;
        c = i % 10;

        //该数学函数库的函数表示一个数的 n 次幂
        if(pow(a, 3) + pow(b, 3) + pow(c, 3) == i)
            printf("水仙花:%d\n", i);

        i++;
    } while (i <= 999);
    return 0;
}

break、continue

  • continue:在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用 continue 语句
  • 在 switch 条件语句和循环语句中都可以使用 break 语句:
    • 当它出现在 switch 条件语句中时,作用是终止某个 case 并跳出 switch 结构。
    • 当它出现在循环语句中,作用是跳出当前内循环语句,执行后面的代码。
    • 当它出现在嵌套循环语句中,跳出最近的内循环语句,执行后面的代码。

嵌套循环

外层执行一次,内层执行一周

案例一:打印时钟

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int hours = 0, minutes = 0, seconds = 0;
    for(hours = 0; hours <= 12; hours++)
        for(minutes = 0; minutes <= 60; minutes++) {
            for(seconds = 0; seconds <= 60; seconds++) {
                printf("%2d:%2d:%2d\n", hours, minutes, seconds);
                Sleep(100);
            }
            system("cls"); // 清屏
        }
        printf("DING!!!");
    }
    return 0;
}

案例二:九九乘法表

#include <stdio.h>
int main(void) {
    int i = 1, j = 1;
    for (i = 0; i < 10; i++) {
        for (j = 1; j <= i; j++)
            printf("%d*%d = %2d\t", j, i, i*j);
        printf("\n");
    }
    return 0;
}
posted @ 2020-09-24 15:00  tree6x7  阅读(205)  评论(0编辑  收藏  举报