循环语句

循环

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
posted @   kartone  阅读(175)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示