zoukankan      html  css  js  c++  java
  • [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
    ", ch1);
    
        getchar(); // 测试此处getchar()的作用
    
        printf("请输入ch2的字符:");
        ch2 = getchar();
        printf("ch2 = %c
    ", ch2);
    
        getchar(); // 测试此处getchar()的作用
    
        printf("请输入ch3的字符:");
        scanf("%c", &ch3); // 参数2一定是变量的地址! 而不是变量名
        printf("ch3 = %c
    ", ch3);
    
        printf("请输入a的值:");
        scanf("%d", &a);
        printf("a = %d
    ", a);
    
        printf("请输入b的值:");
        scanf("%d", &b);
        printf("b = %d
    ", 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
    ");
                break; // 如果不加 break,就会出现 "case穿透"
            case '2':
                printf("not OK
    ");
                break; // 遇到 break 就跳出
            default: // 如果上面的条件都不满足,执行 default
                printf("are u ok?
    ");
        }
        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("敲桌子
    ");
            } else {
                printf("%d
    ",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
    ", 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
    ", 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
    ", 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	", j, i, i*j);
            printf("
    ");
        }
        return 0;
    }
    
  • 相关阅读:
    『Argparse』命令行解析
    『MXNet』专题汇总
    用.NET开发通用Windows App
    ASP.NET 5探险(6):升级ASP.NET 5到beta6
    使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台
    Visual Studio 2015将在7月20号RTM
    VS2015上又一必备免费插件:Refactoring Essentials
    ASP.NET 5探险(5):利用AzureAD实现单点登录
    Visual Studio Code升级到0.5,提供对ES6的更好支持
    ASP.NET 5探险(4):如何把ASP.NET 5从beta4升级到beta5
  • 原文地址:https://www.cnblogs.com/liujiaqi1101/p/13724117.html
Copyright © 2011-2022 走看看