程序基本语句
约 2770 字大约 9 分钟
2025-06-25
cin语句
cin
cin 是 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++ 标准输出流对象,通过插入运算符 << 可以将数据输出到标准输出设备(通常是显示器)。
#include <iostream>
using namespace std;
int main() {
int a = 10;
cout << "a = " << a << endl;
return 0;
}
注意事项
endl
用于换行并刷新缓冲区,也可以使用\n
换行,但不会立即刷新缓冲区。- 同样需要包含
<iostream>
头文件。
scanf语句
scanf
scanf 是 C 语言标准输入函数,用于从标准输入设备(通常是键盘)读取格式化的数据。
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
return 0;
}
注意事项
scanf
函数需要使用格式化字符串来指定输入数据的类型,如%d
表示读取整数。scanf
函数要带&
取址符,&a
表示将输入的数据存储到变量a
中。
printf语句
printf
printf 函数:用于格式化输出数据。
#include <stdio.h>
int main() {
int a = 10;
printf("a = %d", a);
return 0;
}
注意事项
printf
函数需要使用格式化字符串来指定输出数据的类型,如%d
表示输出整数。printf
函数输出字符串时不需要&
取址符。
赋值语句
=
赋值语句用于将一个值赋给变量。
int a = 10; // 将 10 赋值给变量 a
注意事项
- 赋值语句中,
=
是赋值运算符,a = 10
表示将 10 赋值给变量a
。
复合语句
{}
复合语句也称为语句块,是用一对花括号 {}
括起来的一组语句。在 C++
中,复合语句可以用于定义局部作用域,或者作为函数体、if
语句、for
循环、while
循环等控制结构的执行部分。
int main() {
int a = 10;
{
int b = 20;
a = b; // 在局部作用域中使用变量 b
}
// b 超出作用域,不能再使用
return 0;
}
注意事项
- 复合语句中的变量,只能在其所在的花括号内使用,超出作用域就不能再使用了。
if语句
if
if 语句用于根据条件执行不同的代码块,是一种条件控制语句。
if语句基本形式:
if形式
if (条件表达式) {
// 如果条件表达式为真,则执行这里的代码
}
注意事项
if
语句后面的条件表达式必须用括号括起来。if
语句后面的条件表达式的结果必须是一个布尔值(true
或false
)。if
语句后面的条件表达式的结果为true
时,执行if
后面的语句块。if
语句后面的条件表达式的结果为false
时,不执行if
后面的语句块。
if...else形式
if...else形式
if (条件表达式) {
// 如果条件表达式为真,则执行这里的代码
} else {
// 如果条件表达式为假,则执行这里的代码
}
注意事项
if
语句后面的条件表达式的结果为false
时,执行else
后面的语句块。
if...else if...else形式
if...else if...else形式
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语句形式
switch (表达式) {
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
...
default:
语句n;
}
注意事项
switch
后面的表达式必须是一个整数类型(包括 char 类型,因为 char 本质上也是整数类型)。case
后面的常量表达式必须是一个整数常量,不能是变量。break
语句用于跳出switch
语句,否则会继续执行后面的语句。default
语句用于在所有case
都不匹配时执行。
多层条件语句
多层条件语句概念
多层条件语句通常指在 if 语句中嵌套 if 语句,用于处理复杂的条件判断。
多层条件语句形式
多层条件语句形式
if (条件表达式1) {
if (条件表达式2) {
语句1;
} else {
语句2;
}
} else {
if (条件表达式3) {
语句3;
} else {
语句4;
}
}
注意事项
- 嵌套层数不宜过多,否则会使代码结构变得复杂,可读性变差。
- 注意每层 if 语句的条件和代码块的逻辑关系,避免出现逻辑错误。
for语句
for语句概念
for 语句是一种常用的循环语句,用于在满足一定条件时重复执行一段代码。
for语句形式
for语句形式
for (初始化表达式; 条件表达式; 更新表达式) {
// 循环体语句
}
注意事项
for
语句后面的初始化表达式、条件表达式和更新表达式之间用分号隔开。for
语句后面的条件表达式的结果必须是一个布尔值(true
或false
)。for
语句后面的条件表达式的结果为true
时,执行for
后面的语句块。for
语句后面的条件表达式的结果为false
时,不执行for
后面的语句块。for
语句后面的更新表达式在每次循环结束后执行。
while语句
while语句概念
while 语句也是一种循环语句,只要条件表达式为 true,就会重复执行循环体代码。
while语句形式
while语句形式
while (条件表达式) {
// 循环体语句
}
注意事项
- 在循环体中一定要有改变条件表达式结果的操作,否则可能会导致死循环。
while
语句后面的条件表达式的结果必须是一个布尔值(true
或false
)。while
语句后面的条件表达式的结果为true
时,执行while
后面的语句块。while
语句后面的条件表达式的结果为false
时,不执行while
后面的语句块。
do...while语句
do...while语句概念
do...while 语句也是一种循环语句,它先执行一次循环体代码,然后判断条件表达式是否为 true,如果为 true,则继续执行循环体代码,否则跳出循环。
do...while语句形式
do...while语句形式
do {
// 循环体语句
} while (条件表达式);
注意事项
do
语句后面的循环体语句至少会执行一次。do
语句后面的条件表达式的结果必须是一个布尔值(true
或false
)。do
语句后面的条件表达式的结果为true
时,继续执行do
后面的语句块。do
语句后面的条件表达式的结果为false
时,跳出do
后面的语句块。
多层循环语句
多层循环语句概念
多层循环语句指在一个循环语句中嵌套另一个循环语句,最常见的是双重循环,比如在 for 循环中嵌套 for 循环。
多层循环语句形式
多层循环语句形式
for (初始化表达式1; 条件表达式1; 更新表达式1) {
for (初始化表达式2; 条件表达式2; 更新表达式2) {
// 循环体语句
}
}
注意事项
- 嵌套层数不宜过多,否则会使代码结构变得复杂,可读性变差。
- 注意每层循环的条件和代码块的逻辑关系,避免出现逻辑错误。
打印九九乘法表
打印九九乘法表
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 或 %e | printf("%g", 3.14); |
扩展2 - 占位符表格2
占位符表格2
占位符 | 输入 | 输出 | 功能 |
---|---|---|---|
%d | √ | √ | 整数的输入与输出 |
%nd | √ | √ | 输入或输出 n 位整数,输出位数不足时用空格补齐 |
%0nd | √ | √ | 输入或输出 n 位整数,输出位数不足时用数字 0 补齐 |
%c | √ | √ | 字符的输入与输出 |
%lf | √ | √ | 双精度 double 浮点数的输入与输出 |
%f | √ | √ | 单精度 float 浮点数的输入与输出 |
%lld | √ | √ | long long 类型整数的输入与输出 |
%.nf | √ | 保留小数点后 n 位的输出 | |
%s | √ | √ | 字符数组的输入与输出 |
扩展3 - 条件表达式
如何撰写条件表达式?
- 条件表达式的结果必须是一个布尔值(
true
或false
)。 - 条件表达式可以使用比较运算符(
==
、!=
、>
、>=
、<
、<=
)、逻辑运算符(&&
、||
、!
)、位运算符(&
、|
、^
、~
、<<
、>>
)等。 - 条件表达式可以使用括号改变运算符的优先级,例如
(a > b) && (c < d)
。