循环语句
循环
while语句
int i = 10;
while (i > 0) {
printf("hello\n");
i--;
}
/**
如何判断循环次数
i = 10可以执行
i = 1 可以执行
i = 0 不执行
1-10共执行10次
*/
无限循环
while (1)
do语句
至少执行一次循环
for语句
省略语句
for (exp1; exp2; exp3)
如果省略第二个表达式,for语句永不终止,建立无限循环
C99中的for语句
exp1可以替换为一个声明
for (int i = 0; i < n; i++)
...
如果变量i已经在之前声明过了,那么这个语句将创建一个新的i且该值仅用于循环内
for语句声明的变量在循环外不可见
可以声明多个类型相同的变量
for (int i = 0, j = n; i < n; i++)
for (int i = 0, int j = n; i < n; i++)
for (int i = 0, double j = n; i < n; i++)
/*
上述两种报错
*/
逗号运算符
[逗号表达式] 表达式1,表达式2
逗号运算符运算优先级低于所有其他运算符
左结合
计算过程
- 计算表达式1,并扔掉。有副作用,否则表达式1没意义
- 计算表达式2,把这个值作为整个表达式的值
除了宏,for语句是唯一可以发现逗号运算符的地方
上面的话应该是错的
int i, j;
i = 1, j = 2;
break,continue语句
goto语句
goto 标识符;
标识符: 语句
goto done;
done:
...
该语句必须和goto语句在同一函数中
空语句
除了末尾的分号什么也没有
for (d = 2; d < n && n % d != 0; d++);
/* empty loop body */
for (n = 0; n < 10; n++) {
scanf("%d", &i);
if (i == 0)
continue;
sum += i;
}
// continue之后,n会加1
int a, b;
int a1 = a, b1 = b;
// 不合法, a, b
经典算法
逆序
int n = 123;
int reverse = 0;
do {
reverse = reverse * 10 + n % 10;
n /= 10;
} while (n != 0);
最大公约数
int a = 6, b = 8;
int t;
while (b != 0) {
t = a;
a = b;
b = t % a;
}
// a is GCD
// Greatest common divisor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人