Skip to content

程序基本语句

约 2770 字大约 9 分钟

2025-06-25

cin语句

cin

cin 是 C++ 标准输入流对象,用于从标准输入设备(通常是键盘)读取数据。它配合提取运算符 >> 使用。

c++
#include <iostream>
using namespace std;
int main() {
    int a, b;
    cin >> a >> b;
    cout << a + b << endl;
    return 0;
}

注意事项

  • cin 读取数据时,遇到空格、换行符、制表符等空白字符会停止读取,所以对于读取包含空格的字符串不太适用,这时可以使用getline()函数。
    • getline()函数会读取整行字符串,直到遇到换行符为止。
  • 使用 cin 前,需要包含 <iostream> 头文件。

cout语句

cout

cout 是 C++ 标准输出流对象,通过插入运算符 << 可以将数据输出到标准输出设备(通常是显示器)。

c++
#include <iostream>
using namespace std;
int main() {
    int a = 10;
    cout << "a = " << a << endl;
    return 0;
}

注意事项

  • endl 用于换行并刷新缓冲区,也可以使用 \n 换行,但不会立即刷新缓冲区。
  • 同样需要包含 <iostream>头文件。

scanf语句

scanf

scanf 是 C 语言标准输入函数,用于从标准输入设备(通常是键盘)读取格式化的数据。

c++
#include <stdio.h>
int main() {
    int a;
    scanf("%d", &a);
    return 0;
}

注意事项

  • scanf 函数需要使用格式化字符串来指定输入数据的类型,如 %d 表示读取整数。
  • scanf 函数要带&取址符,&a表示将输入的数据存储到变量 a 中。

printf语句

printf

printf 函数:用于格式化输出数据。

c++
#include <stdio.h>
int main() {
    int a = 10;
    printf("a = %d", a);
    return 0;
}

注意事项

  • printf 函数需要使用格式化字符串来指定输出数据的类型,如 %d 表示输出整数。
  • printf 函数输出字符串时不需要&取址符。

赋值语句

=

赋值语句用于将一个值赋给变量。

c++
int a = 10; // 将 10 赋值给变量 a

注意事项

  • 赋值语句中,= 是赋值运算符,a = 10 表示将 10 赋值给变量 a

复合语句

{}

复合语句也称为语句块,是用一对花括号 {} 括起来的一组语句。在 C++ 中,复合语句可以用于定义局部作用域,或者作为函数体、if 语句、for 循环、while 循环等控制结构的执行部分。

c++

注意事项

  • 复合语句中的变量,只能在其所在的花括号内使用,超出作用域就不能再使用了。

if语句

if

if 语句用于根据条件执行不同的代码块,是一种条件控制语句。

if语句基本形式:

if形式

c++
if (条件表达式) {
    // 如果条件表达式为真,则执行这里的代码
}

注意事项

  • if 语句后面的条件表达式必须用括号括起来。
  • if 语句后面的条件表达式的结果必须是一个布尔值(truefalse)。
  • if 语句后面的条件表达式的结果为 true 时,执行 if 后面的语句块。
  • if 语句后面的条件表达式的结果为 false 时,不执行 if 后面的语句块。

if...else形式

if...else形式

c++
if (条件表达式) {
    // 如果条件表达式为真,则执行这里的代码
} else {
    // 如果条件表达式为假,则执行这里的代码
}

注意事项

  • if 语句后面的条件表达式的结果为 false 时,执行 else 后面的语句块。

if...else if...else形式

if...else if...else形式

c++
if (条件表达式1) {
    // 如果条件表达式1为真,则执行这里的代码
} else if (条件表达式2) {
    // 如果条件表达式1为假,且条件表达式2为真,则执行这里的代码
} else {
    // 如果条件表达式1和条件表达式2都为假,则执行这里的代码
}

注意事项

  • if 语句后面的条件表达式的结果为 true 时,执行 if 后面的语句块。
  • if 语句后面的条件表达式的结果为 false 时,不执行 if 后面的语句块。
  • else if 语句后面的条件表达式的结果为 true 时,执行 else if 后面的语句块。
  • else 语句后面的语句块,在前面的所有条件表达式都为 false 时才会执行。

switch语句

switch语句

switch 语句也是一种多分支选择结构,它根据一个整数类型(包括 char 类型,因为 char 本质上也是整数类型)的表达式的值,来决定执行哪个分支。

switch语句形式

switch语句形式

c++

注意事项

  • switch 后面的表达式必须是一个整数类型(包括 char 类型,因为 char 本质上也是整数类型)。
  • case 后面的常量表达式必须是一个整数常量,不能是变量。
  • break 语句用于跳出 switch 语句,否则会继续执行后面的语句。
  • default 语句用于在所有 case 都不匹配时执行。

多层条件语句

多层条件语句概念

多层条件语句通常指在 if 语句中嵌套 if 语句,用于处理复杂的条件判断。

多层条件语句形式

多层条件语句形式

c++

注意事项

  • 嵌套层数不宜过多,否则会使代码结构变得复杂,可读性变差。
  • 注意每层 if 语句的条件和代码块的逻辑关系,避免出现逻辑错误。

for语句

for语句概念

for 语句是一种常用的循环语句,用于在满足一定条件时重复执行一段代码。

for语句形式

for语句形式

c++
for (初始化表达式; 条件表达式; 更新表达式) {
    // 循环体语句
}

注意事项

  • for 语句后面的初始化表达式、条件表达式和更新表达式之间用分号隔开。
  • for 语句后面的条件表达式的结果必须是一个布尔值(truefalse)。
  • for 语句后面的条件表达式的结果为 true 时,执行 for 后面的语句块。
  • for 语句后面的条件表达式的结果为 false 时,不执行 for 后面的语句块。
  • for 语句后面的更新表达式在每次循环结束后执行。

while语句

while语句概念

while 语句也是一种循环语句,只要条件表达式为 true,就会重复执行循环体代码。

while语句形式

while语句形式

c++
while (条件表达式) {
    // 循环体语句
}

注意事项

  • 在循环体中一定要有改变条件表达式结果的操作,否则可能会导致死循环。
  • while 语句后面的条件表达式的结果必须是一个布尔值(truefalse)。
  • while 语句后面的条件表达式的结果为 true 时,执行 while 后面的语句块。
  • while 语句后面的条件表达式的结果为 false 时,不执行 while 后面的语句块。

do...while语句

do...while语句概念

do...while 语句也是一种循环语句,它先执行一次循环体代码,然后判断条件表达式是否为 true,如果为 true,则继续执行循环体代码,否则跳出循环。

do...while语句形式

do...while语句形式

c++
do {
    // 循环体语句
} while (条件表达式);

注意事项

  • do 语句后面的循环体语句至少会执行一次。
  • do 语句后面的条件表达式的结果必须是一个布尔值(truefalse)。
  • do 语句后面的条件表达式的结果为 true 时,继续执行 do 后面的语句块。
  • do 语句后面的条件表达式的结果为 false 时,跳出 do 后面的语句块。

多层循环语句

多层循环语句概念

多层循环语句指在一个循环语句中嵌套另一个循环语句,最常见的是双重循环,比如在 for 循环中嵌套 for 循环。

多层循环语句形式

多层循环语句形式

c++
for (初始化表达式1; 条件表达式1; 更新表达式1) {
    for (初始化表达式2; 条件表达式2; 更新表达式2) {
        // 循环体语句
    }
}

注意事项

  • 嵌套层数不宜过多,否则会使代码结构变得复杂,可读性变差。
  • 注意每层循环的条件和代码块的逻辑关系,避免出现逻辑错误。

打印九九乘法表

打印九九乘法表

c++
for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        printf("%d * %d = %d\t", i, j, i * j);
    }
    printf("\n");
}

扩展1 - 占位符表格

占位符表格
符号说明示例
%d输出整数printf("%d", 10);
%f输出浮点数printf("%f", 3.14);
%c输出字符printf("%c", 'A');
%s输出字符串printf("%s", "Hello");
%lf输出双精度浮点数printf("%lf", 3.14159);
%p输出指针printf("%p", &a);
%x输出十六进制数printf("%x", 10);
%o输出八进制数printf("%o", 10);
%u输出无符号整数printf("%u", 10);
%e输出科学计数法表示的浮点数printf("%e", 3.14);
%g输出浮点数,根据值的大小自动选择 %f 或 %eprintf("%g", 3.14);

扩展2 - 占位符表格2

占位符表格2
占位符输入输出功能
%d整数的输入与输出
%nd输入或输出 n 位整数,输出位数不足时用空格补齐
%0nd输入或输出 n 位整数,输出位数不足时用数字 0 补齐
%c字符的输入与输出
%lf双精度 double 浮点数的输入与输出
%f单精度 float 浮点数的输入与输出
%lldlong long 类型整数的输入与输出
%.nf保留小数点后 n 位的输出
%s字符数组的输入与输出

扩展3 - 条件表达式

如何撰写条件表达式?

  • 条件表达式的结果必须是一个布尔值(truefalse)。
  • 条件表达式可以使用比较运算符(==!=>>=<<=)、逻辑运算符(&&||!)、位运算符(&|^~<<>>)等。
  • 条件表达式可以使用括号改变运算符的优先级,例如 (a > b) && (c < d)