doc/notebook/docs/NOI竞赛大纲/二.C++程序设计/3.程序基本语句.md

3.9 KiB
Raw Blame History

3. 程序基本语句

程序是由一条条“语句”组成的,每条语句都有其明确的功能,例如输入、输出、赋值、判断、循环等。掌握基本语句,是学会编写程序的第一步。


📥输入、输出与赋值语句

1. 输入语句

用于从用户输入中获取数据。

  • cinC++

    int a;
    cin >> a; // 读取一个整数并存入变量 a 中
    

    多个变量也可连续读取:

    int x, y;
    cin >> x >> y;
    
  • scanfC

    int a;
    scanf("%d", &a); // %d 表示读取一个整数
    

    多变量读取:

    int x, y;
    scanf("%d %d", &x, &y);
    

2. 输出语句

用于将数据展示到终端(控制台)上。

  • coutC++

    int a = 10;
    cout << "a = " << a << endl;
    
  • printfC

    int a = 10;
    printf("a = %d\n", a);
    

3. 赋值语句

将右侧的值赋给左侧变量,是程序中最基本的操作之一。

int a;
a = 5;
a = a + 10; // 赋值时,先计算右边的值

4. 复合语句

复合语句即“语句块”,由一对花括号 {} 包裹起来的多条语句,常用于条件或循环控制中:

{
    int a = 1;
    int b = 2;
    cout << a + b << endl;
}

🔀选择结构语句

程序根据条件不同,执行不同的操作路径,这类语句称为“选择结构”。

1. if 语句

用于根据条件判断是否执行某些语句。

if (a >= 60) {
    cout << "及格";
} else {
    cout << "不及格";
}

多条件判断

if (score >= 90) {
    cout << "优秀";
} else if (score >= 80) {
    cout << "良好";
} else {
    cout << "继续加油";
}

2. switch 语句

适用于“固定选项”的多分支判断。

int op = 2;
switch (op) {
    case 1:
        cout << "选项1";
        break;
    case 2:
        cout << "选项2";
        break;
    default:
        cout << "无效选项";
}

3. 多层条件语句(嵌套)

if (x > 0) {
    if (x % 2 == 0) {
        cout << "正偶数";
    } else {
        cout << "正奇数";
    }
} else {
    cout << "非正数";
}

🔁循环结构语句

循环语句用于让程序重复执行某些操作。

1. for 语句(已知次数)

for (int i = 1; i <= 5; i++) {
    cout << i << " ";
}

结构包含三部分:

  • 初始化:int i = 1
  • 条件判断:i <= 5
  • 更新表达式:i++

2. while 语句(先判断再执行)

int i = 1;
while (i <= 5) {
    cout << i << " ";
    i++;
}

若初始条件不成立,则一次都不执行。

3. do while 语句(先执行后判断)

int i = 1;
do {
    cout << i << " ";
    i++;
} while (i <= 5);

不管条件如何,至少执行一次。


🔃多层循环语句(嵌套循环)

循环内部再嵌套一个循环,称为“多层循环”,适用于图形输出、二维数组、表格处理等。

示例:打印矩形

for (int i = 1; i <= 3; i++) {
    for (int j = 1; j <= 5; j++) {
        cout << "* ";
    }
    cout << endl;
}

输出:

* * * * * 
* * * * * 
* * * * * 

示例:九九乘法表

for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        cout << j << "*" << i << "=" << j*i << "\t";
    }
    cout << endl;
}

输出:

1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
...

🧩 小结表

功能类别 相关语句 描述
输入语句 cin, scanf 从用户获取数据
输出语句 cout, printf 向屏幕输出数据
赋值语句 = 设置变量的值
条件语句 if, switch, 嵌套 if 根据条件决定执行路径
循环语句 for, while, do while 实现重复执行
多层循环 for 嵌套 for 实现二维结构处理