C语言:循环结构

初识C语言:三种循环结构详解 C语言初阶:循环语句详解 阅读详情

什么是循环结构

代码在满足某种条件的前提下,重复执行,就叫做循环结构。

循环的分类

  • 无限循环:其实就是死循环,程序设计中要谨慎使用。

  • 有限循环:循环限定循环次数(for)或者终止循环的条件(while,do..while)。

循环的构成

  • 循环条件: 如循环次数或者循环的出口。

  • 循环体:需要重复执行的代码(也就是{}包裹的内容)

当型循环的实现

特点:先判断,后执行,如果条件不满足,循环体一次都不执行。

代表:while、for

while循环

语法:

【1】循环变量;
 while (【2】循环条件)
 {
     【3】循环语句;
     【4】更新循环变量;
 }
 ​
 // 注意:如果循环语句是单语句,可以省略{}
 while (循环条件) 循环单语句;
 while (循环条件)
     循环单语句;
 ​
 // 注意:有些特殊场景下,循环体语句糅合到了循环条件中,所以省略掉循环体
 while (循环条件);  // int i = 1;  while(i++ <= 5); printf("%d\n",i);// 7

说明:

  1. 循环条件的返回值必须是逻辑值(使用非0表示真,使用0表示假,C语言底层使用1表示真)C99版本引入了一个stdbool.h,可以使用true或者false来表示真假,这里的true和false实际上就是定义的两个符号常量,true的值是1,false的值0。

  2. {}包起来的内容整体称之为循环体。

  3. 我们要在循环体中控制循环条件的变化,也可以在循环条件中控制循环条件的变化,否则产生死循环。

执行过程:

特点: 先判断,后执行,循环体语句有可能一次都不执行。

案例
  • 需求:求1~100的累加和(例如:1+2+3+4+..+100)

  • 分析:

    • 创建一个变量sum = 0,用来接收累加和

    • 创建一个循环变量i,用来表示计算数,给一个默认值1,每次循环的时候 i++

    • 在循环中,使用 sum += i(sum = sum + i),完成累加和运算

    • 同时我们要限定循环的条件,也就是i的范围:i <= 100

      • 第1次:sum += i = 0 + 1 = 1

      • 第2次:sum += i = 1 + 2 = 3

      • 第3次:sum += i = 3 + 3 = 6

      • ...

  • 代码:

     /*************************************************************************
       > File Name:    demo01.c
       > Author:       三道渊
       > Description:  
       > Created Time: 2025年07月15日 星期二 10时42分47秒
      ************************************************************************/
     ​
     #include <stdio.h>
     ​
     int main(int argc,char *argv[])
     {
         // 需求:求1~100的累加和
     ​
         // 创建一个变量sum = 0,用来存储累加和,因为参与计算,所以必须有初始值
         int sum = 0;
     ​
         // 创建一个 循环变量并初始化
         int i = 1;
     ​
         // 通过一个循环生成1~100的自然数,并实现累加和运算
         while(i <= 100)  // ()循环条件,限制循环变量的变化,循环的出口限制
         {
             // 累加和运算
             sum += i;
             // 更新循环变量,逼近出口
             i++;// 等价于 i = i + 1  i+=1 ++i
         }
     ​
         printf("1~100的累加和是%d\n",sum);
     ​
         return 0;
     }
     ​

  • 运行结果:

案例
  • 需求:求1~100以内的偶数和

  • 分析:

    • 创建一个变量sum = 0,用来存储累加的偶数和

    • 创建一个循环变量i = 2,存储参与运算的自然数(最小的偶数是2)

    • 创建一个循环,设置循环条件 i <= 100

    • 在循环体内,需要用一个if校验i是否是偶数,如果满足条件,就实现偶数和的计算:sum += i

    • 在循环体的最后一行,需要更新循环变量,作用是逐渐逼近循环的出口

    • 循环结束后,才能输出sum。

  • 代码:

     
    /*************************************************************************
       > File Name:    demo02.c
       > Author:       三道渊
       > Description:  
       > Created Time: 2025年07月15日 星期二 11时02分40秒
      ************************************************************************/
     ​
     #include <stdio.h>
     ​
     int main(int argc,char *argv[])
     {
         // 创建一个变量sum = 0,用来存储累加的偶数和
         int sum = 0;
         // 创建一个循环变量i = 2,存储参与运算的自然数(最小的偶数是2)
         int i = 2;
         // 创建一个循环,设置循环条件 i <= 100
         while (i <= 100)
         {
             // 在循环体内,需要用一个if校验i是否是偶数,如果满足条件,就实现偶数和的计算:sum += i
             if (i % 2 == 0)
                 sum += i;
             // 在循环体的最后一行,需要更新循环变量,作用是逐渐逼近循环的出口
             i++;
             
             // if (i % 2 == 0) sum += i; i++;   // 等价于上面代码
         }
         // 循环结束后,才能输出sum。
         printf("1~100以内的偶数和是%d\n", sum);
         
         return 0;
     }
     ​

  • 运行结果:

案例
  • 需求:通过键盘录入一个整数,判断这个整数是否是水仙花数。

  • 分析:

    • 拆分一个n位的数,比如拆分为如:个位、十位、百位...

    • 要求这个n位数的每一位的n次幂相加等于这个数本身:

      比如一个三位数:

      个位的3次幂 + 十位的3次幂 + 百位的3次幂 = 这个数本身

  • 代码:

     /*************************************************************************
       > File Name:    demo06.c
       > Author:       三道渊
       > Description:  
       > Created Time: 2025年07月15日 星期二 14时32分55秒
      ************************************************************************/
     ​
     #include <stdio.h>
     #include <math.h>
     ​
     int main(int argc,char *argv[])
     {
         int num, originalNum, n = 0, sum = 0;
     ​
         // 从控制台录入一个数
         printf("请输入一个整数:");
         scanf("%d", &num);
     ​
         // 用一个变量记录这个整数
         originalNum = num;
     ​
         // 计算数字的位数
         while (num != 0)
         {
             num /= 10;
             n++;// 统计位数
         }
     ​
         // 恢复原始数据
         num = originalNum;
     ​
         // 计算各位数的n次幂之和
         while (num != 0)
         {
             // 将需要的位数拆出来
             int digit = num % 10;
             // 计算这个数的n次幂,并相加
             sum += pow(digit,n);// pow(运算数,运算数的n次方)
             // 将需要拆除的位保留在个位
             num /= 10;
         }
     ​
         // 校验并输出
         if (sum == originalNum)
             printf("%d 是水仙花数。\n", originalNum);
         else
             printf("%d 不是水仙花数。\n", originalNum);
     ​
         return 0;
     }
     ​
  • 编译命令:

     gcc demo06.c -lm  // math.h中有些函数属于GNU扩展函数,不是C语言标准,需要指定链接

    解释:-lm 意思是链接数学库,数学库中有一些函数不是C语言标准定义的,属于其他扩展库,C语言标准库是自动链接的,但是扩展库不会自动链接,需要我们指定链接。

  • 运行效果:

while的特殊写法:

 while(1)   // 死循环

for循环

原则上:for循环能实现的,while循环也可以实现,for循环可以看做是while循环的一种特殊写法,for循环胜在结构清晰,非常适合于直到循环次数的循环。

语法:

 for (【1】循环变量; 【2】循环条件; 【4】更新循环变量)
 {
     【3】循环语句;
 }
 ​
 // 如果循环体语句是单语句,也是可以省略{}
 for (【1】循环变量; 【2】循环条件; 【4】更新循环变量)【3】循环语句;
 for (【1】循环变量; 【2】循环条件; 【4】更新循环变量)
     【3】循环语句;

说明:

① ()中可以仅保留两个;;,举例:for (;;),此时这种写法就是死循环的一种体现。

② 循环变量:需要赋初始值,循环变量可以是单个,也可以是列表,多个循环变量之间使用逗号分隔,举例:

 // 循环变量是单个
 for (int i = 0;..;..) {..}
 ​
 // 循环变量是多个
 for (int i = 0,j = len -1;..;..){..}

③ 循环条件:用来限制循环的次数,循环条件支持任意表达式(常用的有关系表达式,逻辑表达式),举例:

 for (..;i < 10 && j >= 0;..){..}

④:更新循环变量:支持列表,列表使用逗号分隔,这里可以使用赋值表达式,举例:

 for (..;..;i++,j--){..}

⑤ 执行顺序:①②③④ → ②③④ → ②③④ → ... → ②

执行过程:

特点:先判断,后执行,循环体语句有可能一次都不执行。

案例
  • 需求:计算1~100以内的偶数和

  • 代码:

     
    
    /*************************************************************************
       > File Name:    demo03.c
       > Author:       三道渊
       > Description:  
       > Created Time: 2025年07月15日 星期二 11时34分44秒
      ************************************************************************/
     ​
     #include <stdio.h>
     ​
     /**
      * 使用while实现
      */ 
     int while_test()
     {
         int sum = 0;
         // 循环变量(需要初始化)
         int i = 2;
         // 循环条件
         while (i <= 100)
         {
             // 循环语句
             if (i % 2 == 0) sum += i;
             // 更新循环变量
             i++;
         }
     ​
         // 打印输出
         printf("1~100以内的偶数和是%d\n", sum);
     ​
         return 0;
     }
     ​
     /**
      * 使用for实现(不推荐)
      */ 
     int for_test()
     {
         int sum = 0;
         // 循环变量(需要初始化)
         int i = 2;
         // 循环条件
         for (;i <= 100;)
         {
             // 循环语句
             if (i % 2 == 0) sum += i;
             // 更新循环变量
             i++;
         }
     ​
         // 打印输出
         printf("1~100以内的偶数和是%d\n", sum);
     ​
         return 0;
     }
     ​
     /**
      * 使用for实现(推荐)
      */ 
     int for_test2()
     {
         int sum = 0;
     ​
         // 循环条件
         for (int i = 2; i <= 100; i++)
         {
             // 循环语句
             if (i % 2 == 0) sum += i;
         }
     ​
         // 打印输出
         printf("1~100以内的偶数和是%d\n", sum);
     ​
         return 0;
     }
     ​
     int main(int argc,char *argv[])
     {
         while_test();
         for_test();
         for_test2();
         
         return 0;
     }
    
    
案例
  • 需求:用户通过键盘输入一个整数n,求n的阶乘。例如:n = 4,n的阶乘 1 * 2 * 3 * 4

  • 代码:

     /*************************************************************************
       > File Name:    demo04.c
       > Author:       三道渊
       > Description:  
       > Created Time: 2025年07月15日 星期二 11时45分48秒
      ************************************************************************/
     ​
     #include <stdio.h>
     // 数学库对应的头文件
     #include <math.h>
     ​
     int main(int argc,char *argv[])
     {
         // 创建一个变量,用来存储计算数
         unsigned long n;
         // 创建一个变量,用来存储乘积 size_t 是C语言中 unsigned long的别名
         size_t r = 1;
     ​
         // 通过控制台,给n赋值
         printf("请输入一个整数:\n");
         scanf("%lu", &n);
     ​
         // 通过for循环计算
         for (int i = 1; i <= fabs(n); i++) r *= i;
     ​
         printf("1~%lu的乘积结果是%lu\n",(size_t)fabs(n), r);
         return 0;
     }
     ​
  • 注意:阶乘计算,如果乘积超过变量存储的范围,会溢出,结果计算可能不准确。

for实现死循环:

  
  for(表达式1;;表达式3) {..}
  for(表达式1;;) {..}
  for(;;表达式3) {..}
  for(;;) {}
  for(表达式1;表达式2;) {}
  ...
循环实现的三要素
  • 循环变量的初始化,举例:int i = 2

  • 循环条件,举例:i <= 100

  • 循环变量的更新,举例:i++

案例
  • 需求:求斐波拉契数列前20个

  • 分析:

    • 斐波拉契数列指的是是符合一定规则的数列,举例:1,1,2,3,5,8...

    • 斐波拉契数列的特点:第3个数等于前两个数之和,最开始的第1,2个数是固定的,都是1

  • 代码:

     
    
    /*************************************************************************
       > File Name:    demo05.c
       > Author:       三道渊
       > Description:  
       > Created Time: 2025年07月15日 星期二 14时13分31秒
      ************************************************************************/
     ​
     #include <stdio.h>
     ​
     int main(int argc,char *argv[])
     {
         // 创建一个变量,存储第1,2个数,默认都是1
         int f1 = 1, f2 = 1;
     ​
         // 定义循环变量
         int i = 1; // 每一次循环产生2个数,也就是循环10次
     ​
         // 通过循环产生数列
         for (; i <= 10; i++)
         {
             // 输出当前两个数列
             printf("%-12d%-12d\n",f1,f2);// 1,1 
             // 计算得到新的f1,f2
             f1 += f2; // f1 = f1 + f2; // 第1次:f1 = 1+1 = 2 ..
             f2 += f1; // f2 = f2 + f1;  // 第1次:f2 = 1 + 2 = 3 ..
         }
     ​
         return 0;
     }
     ​
  • 运行结果:

直到型循环的实现

特点:先执行,后判断,不管条件是否满足,至少执行一次。

代表:do..while

do..while循环

语法:

 【1】循环变量;
 do
 {
     【2】循环体语句;
     【3】更新循环变量;
 } while(【4】循环条件);

说明:

① 循环条件的返回值必须是逻辑值(0和非0(计算机返回1))

② {}包起来的内容称之为循环体

③ 我们要在循环体中控制循环条件的变化,否则会产生死循环。

执行过程:

特点:先执行,后判断,不管条件是否满足,循环体语句至少执行一次。

案例
  • 需求:求1~100 以内的偶数和

  • 分析:

    • 创建一个变量,用来存储偶数和sum = 0

    • 创建一个循环变量,i = 2

    • 创建一个do..while循环,在循环体中,校验 i % 2 == 0,如果满足,就实现偶数和计算 sum += i

    • 计算完成,在do..while循环体的末行,更新循环变量,使其逼近出口

    • 限制性循环的出口:i <= 100 (i > 100 ,循环结束)

    • 循环结束,打印输出sum的值

  • 代码:

     
    
    /*************************************************************************
       > File Name:    demo07.c
       > Author:       三道渊
       > Description:  
       > Created Time: 2025年07月15日 星期二 16时29分23秒
      ************************************************************************/
     ​
     #include <stdio.h>
     ​
     int main(int argc,char *argv[])
     {
         // 创建一个变量,用来存储偶数和sum = 0 
         int sum = 0;
         // 创建一个循环变量,i = 2
         int i = 2;
         // 创建一个do..while循环,在循环体中,校验 i % 2 == 0,如果满足,就实现偶数和计算 sum += i
         do
         {
             if (i % 2 == 0) sum += i;
             // 计算完成,在do..while循环体的末行,更新循环变量,使其逼近出口
             i++;
         } while(i <= 100);
         // 限制性循环的出口:i <= 100   (i > 100 ,循环结束)
     ​
         // 循环结束,打印输出sum的值
         printf("1~100以内的偶数和是%d\n", sum);
         return 0;
     }
     ​
案例
  • 需求:用C语言编写简单猜数字游戏代码。游戏规则是程序随机生成一个1到100之间的数字,玩家通过输入猜测数字,程序会提示猜测是太大还是太小,直到玩家猜中为止。

  • 代码:

     
    
    /*************************************************************************
       > File Name:    demo08.c
       > Author:       三道渊
       > Description:  猜数字
       > Created Time: 2025年07月15日 星期二 16时37分16秒
      ************************************************************************/
     ​
     #include <stdio.h>
     #include <stdlib.h>
     #include <time.h>
     ​
     int main(int argc,char *argv[])
     {
         // 创建变量number(随机数),guess(用户猜测的数字),count(计数)
         int number, guess, count = 0;
     ​
         // 设置随机种子
         srand(time(NULL));
     ​
         // 生成随机数 1~10之间的随机数 rand() % 最大范围整数,生成的实际数的范围 0 ~ 最大范围整数 - 1
         number = rand() % 10 + 1;
     ​
         // 设计头
         printf("----------------------\n");
         printf("|  猜数字小游戏v1.0  |\n");
         printf("----------------------\n\n");
     ​
         printf("我已经想了一个1~10之间的整数,你猜猜是多少?\n");
     ​
         // 猜数字,猜不对,就一直猜,猜到对为止
         do
         {
             printf("请输入你的猜测:\n");
             // 接收scanf的返回值
             int result = scanf("%d", &guess);
             // 对非法输入进行校验(比如:我们要求输入数值,但是不小心输入了非数值,此时就是非法输入)
             if (result != 1)
             {
                 // 如果输入的不是数字,就是非法的,也就是输入的内容类型跟scanf提供的格式化符号不匹配
                 // 每次重新输入前,需要清空输入缓冲区,重新从外部设备获取输入到缓冲区
                 while (getchar() != '\n'); // getchar() 类似于 scanf("%c",c);
                 printf("请输入数字!\n");
     ​
                 continue; // 这次循环,跳过不算
             }
     ​
             // 计算
             count ++;
     ​
             // 校验
             if (guess > number) printf("太大了,再猜一次!\n");
             else if (guess < number) printf("太小了,再猜一次!\n");
             else 
             {
                 printf("恭喜你,猜对了!\n");
                 printf("你一共猜了%d次!\n", count);
             }
     ​
         } while(guess != number); // 等价于 guess > number || guess < number
     ​
     ​
         return 0;
     }
     ​
  • 运行效果:

goto(了解)

语法:

   goto 标签(label)

标签:标明目标代码的位置,是一个不加""的字符串。

案例:

  • 需求:求1~100以内的偶数和

  • 代码:

      
     /*************************************************************************
         > File Name:    demo08.c
         > Author:       三道渊
         > Description:  
         > Created Time: 2025年07月15日 星期二 17时10分10秒
        ************************************************************************/
       
       #include <stdio.h>
       
       int main(int argc,char *argv[])
       {
           // 创建一个变量,用来存放偶数和
           int sum = 0;
       
           // 创建一个循环变量
           int i = 2;
       
       // 定义goto标签,名字自己取,符合标识符命名即可
       loop:
           // 过滤偶数
           if (i % 2 == 0) sum += i; // 偶数和计算
           i++; // 更新循环变量
       
           // 循环条件
           if (i <= 100)  goto loop; // 标签loop由goto触发
       
           printf("1~100以内的偶数和是%d\n",sum);
       
           return 0;
       }

  • 注意事项

    1. 可读性:goto语句会破坏代码的结构和可读性,使得代码难以理解和维护。因此,应尽量避免使用。

    2. 替代方案:大多数情况下,可以使用循环、条件语句、函数等结构来替代goto语句,使代码更加清晰和易于管理。

    3. 嵌套限制:虽然goto语句可以跨函数跳转(即跳转到另一个函数中的标签),但这种用法是不合法的,并且会导致编译错误。goto语句只能在同一函数内部跳转。

    4. 错误处理:在某些情况下,goto语句可以用于错误处理,例如从嵌套的多层循环中跳出。但即使在这种情况下,也应谨慎使用,并考虑是否有更好的替代方案。

    总结

    虽然goto语句在C语言中是合法的,并且有时可能看起来很方便,但过度使用或不当使用会导致代码质量下降。因此,建议尽量避免使用goto语句,而是采用更结构化和可维护的编程方法。

循环结构的典型应用场景

  • 求累和:举例:1+2+3..+100的和,sum = 0

  • 求累积:举例:1*2*3..*100的积,result = 1

  • 求均值:举例:(1+2+3...+100)/100的值

  • 求极值:举例:12,34,56,67中的最大值、最小值

  • 元素遍历:常用于数组元素的遍历。

  • ...

基础算法模型

  1. 累和

    • 定义一个变量(sum),并赋初值为0;

    • 该变量累加(+=)每一个数据项(i);

    • 当访问完每一个数据项,此时该变量的取值就是累加和的结果。

  2. 累乘

    • 定义一个变量,并赋初值为1;

    • 用该变量累乘(*=)每一个数据项;

    • 当访问完每一个数据项,此时该变量的取值就是累乘的结果。

  3. 极值(多应用于数组)

    • 定义一个变量,并赋初值为第一个数据项;

    • 从第二个数据项开始,依次于该变量进行比较,如果大于/小于该变量,则将当前数据项的数据赋值给该变量。

    • 当访问完每一个数据项,此时该变量的取值就是求极值的结果。

循环的嵌套

3种循环(while、for、do..while)可以相互嵌套的。在前一个循环结构中又嵌套一个循环结构。例如:

案例
  • 需求:九九乘法表

  • 分析:

    • 我们发现九九乘法表整体其实就是一个9行9列的直角三角形

    • 同时发现:每一行显示的列的数量不超过所在行,第1行1列,第2行2列...

      假定:行用i表示,列用j表示,i和j的关系:j <= i

    • 在实现的时候,我们发现需要同时控制行和列的变化,在编程中,行列式需要通过for双层嵌套实现(双重for循环)。

  • 代码:

     /*************************************************************************
       > File Name:    demo09.c
       > Author:       三道渊
       > Description:  
       > Created Time: 2025年07月15日 星期二 17时28分10秒
      ************************************************************************/
     ​
     #include <stdio.h>
     ​
     int main(int argc,char *argv[])
     {
         printf("--- 九九乘法表 ---\n");
     ​
         // 外层循环:生成行,1~9
         for (int i = 1; i <= 9; i++)
         {
             // 内层循环:生成列,1~(j <= i)
             for (int j = 1; j <= i; j++)
             {
                 // 生成算式
                 printf("%dx%d=%d\t", j, i, j*i);
                 //  printf("*"); // 替换成这行代码,输出下直角三角形
             }
             // 每一行所有列生成完毕,一定要还行
             printf("\n");
         }
     ​
         printf("\n");
     ​
         return 0;
     }
     ​
  • 运行结果:

案例
  • 需求:求100~200之间的所有的素数(素数又被称作质数)

  • 分析:

    • 什么是素数:只能被1和自身整除的数叫做素数或者质数。

  • 代码:

     /*************************************************************************
       > File Name:    deme10.c
       > Author:       三道渊
       > Description:  
       > Created Time: 2025年07月15日 星期二 17时42分14秒
      ************************************************************************/
     ​
     #include <stdio.h>
     ​
     int main(int argc,char *argv[])
     {
         // 创建一个变量,存放100~200之间的自然数   
         int num = 100;
         // 定义一个循环变量i
         int i;
         // 定义标志位,1-素数,0-非素数
         int flag;
         
         // 外层循环:生成100~200之间的自然数 
         for (; num <= 200; num++)
         {
             // 每一个num生成的时候,默认其为素数
             flag = 1;
             
             // 内层循环:我们让num 对 2~num/2 |(num -1)之间的数进行整除,一旦出现一次整除的情况,我们认定其为非素数
             for (i = 2; i < num / 2; i++)
             {
                 // 测试整除的情况
                 if (num % i == 0)
                 {
                     flag = 0;// 非素数
                     // 循环结束,只要出现一次能整除的情况,就说明这个数不是素数。break是提前结束了循环
                     break; 
                 }
             }
             
             // 输出校验结果
             if (flag) // 等价于 flag == 1
                 printf("%-4d",num);
         }
         
         printf("\n");
         
         return 0;
     }
     ​
  • 运行结果:

研制过程评审活动(三)工程研制阶段 工程研制阶段主要任务、及评审活动 阅读详情

相关推荐

工程伦理-知识点汇总

工程伦理-知识点汇总

m0_46091747的博客 1万+

三种循环体

三种循环体 语法: /* while循环体: 初始化语句; while(条件判断语句){ 循环体; 控制条件语句; } do...while循环体: 初始化语句; do{ 循环体; 控制条件语句; }while(条件判断语句); for循环体: for(初始化语句;条件判断语句;控制条件语句){ 循环体; } */ 三种循环体区别: do…while循环至少执行一次循环体; for...

筱荣幸の博客 3003

Oasys安装教程

在基环境下执行然后去 C:\Users.condarc打开 .condarc这个文件 删除干净里面的东西。

weixin_44254178的博客 1295

C语言基础知识----循环

循环结构的特点:在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。 C语言中提供while语句、do-while语句和for语句来实现循环结构。 while语句是当型循环控制语句,一般形式为:while(表达式) “表达式”为循环条件 语句; 循环体要求:(1)while后面的括号()不能省。(2)while后面的表达式可以是任意类型的表达式,但一般是条件表达式或逻辑表达式。表达

m0_73573955的博客 3678

Django Cookie/Session

Cookie是一种小型的文本文件,通常由Web服务器发送到用户浏览器,并存储在用户的本地计算机上。当用户再次访问该网站时,浏览器会将Cookie发送回服务器,从而实现用户身份验证、个性化设置等功能。Session是一种在服务器端存储用户会话信息的方式。与Cookie不同,Session数据存储在服务器上,而不是客户端。Django框架通过在客户端存储一个Session ID来实现Session的跟踪。Django框架的Cookie/Session机制为开发者提供了方便的数据存储和会话管理功能。

froginwe11的博客 467

从零搭建《火影忍者》手游服务端:Linux环境部署与全流程实战

游戏服务器后端开发是构建大型多人在线体验的核心技术,其原理涉及高并发网络通信、分布式系统架构与数据一致性保障。在技术价值上,一套稳定高效的服务端不仅能支撑海量玩家实时交互,更是游戏业务逻辑、经济系统和安全防线的基石。典型的应用场景包括MMORPG、回合制卡牌、SLG等中重度手游。本文以《火影忍者》IP的横版卡牌回合制手游为例,聚焦于**手工服务端**的完整搭建过程,详细拆解从Linux系统初始化、MySQL与**Redis**缓存部署、核心服务编译、到代理后台联调的全链路实践,为开发者深入理解游戏后端架构提

weixin_30800615的博客 337

C语言基础之——循环三大将

循环,顾名思义,就是循环呗哈哈哈,就像那种螺旋的滑滑梯一样,一圈一圈,一层一层的,循环语句会在你所设定的限制条件下不断地重复执行。

2303_78442132的博客 992

[ESP32S3N16R8][LVGL8.3.0][IDF5.2.3]ST7701S RGB屏幕驱动[vscode最详细配置]

ST7701S ESP32S3 基于ESP-IDF5.2.3编写,编程环境为vscode。本教程详细讲述了esp32s3配置st7701s屏幕驱动以及gt911触摸驱动并关联到lvgl8.3.0,使用IDF5.23示例rgb_panel进行测试删除了其里面的屏幕驱动,改为单独编写屏幕和触摸驱动,最后完成了实列。

qq_44022379的博客 2605

C语言学习笔记之循环结构

所谓循环结构就是在给定条件成立时,重复执行某段程序。循环结构中,给定的条件称为循环条件,重复执行的程序叫做循环体。C语言中有for、while、do...while三种循环语句实现循环结构。

qq_68183805的博客 1177

OpenWrt虚拟机磁盘扩容实战:从SquashFS到ext4的完整避坑指南

本文详细介绍了OpenWrt虚拟机磁盘扩容的完整流程,重点对比了SquashFS和ext4文件系统在扩容操作上的关键差异。通过五步安全迁移法和直接分区调整方案,帮助用户有效解决磁盘空间不足问题,同时提供高级技巧和故障排除指南,确保扩容过程顺利无坑。

weixin_29251131的博客 230

Vue3 - 超详细“纯前端“将文件上传到阿里云OSS对象存储,最新阿里云前端直传音频、视频、图片、文件、office文档等任意文件,vue3单个或批量从本地选择文件,秒传到阿里云oss无需后端接口!

vue3,阿里云oss存储,前端直传oss,上传图片/office文档/音视频/zip压缩包到阿里云oss,项目中上传文件到阿里云oss详细教程,如何将本地文件上传到阿里云OSS存储,纯前端实现阿里云OSS上传,纯前端直传至阿里OSS对象存储教程,如何解决上传文件到阿里云OSS本地环境调试出现跨域问题,直传阿里云oss跨域报错解决,前端直接上传文件到oss服务端,不经过后端直传,浏览器直接上传文件,阿里云oss上传sdk官方文档,阿里云错误,解决这个问题,上传很慢,一直签名失败,权限,不经过后端,纯前端直传

🏆 前端领域优质创作者 1万+

一、循环的含义

一、循环的含义 循环就是重复的做……(Java程序中的循环结构有三种实现方式:while循环结构、do-while循环结构、for循环结构) 程序循环的特点: 1、循环不是无休止进行的,满足一定条件的时候循环才会继续,称为“循环条件”; 2、循环不满足的时候,循环退出; 3、循环结构是反复进行相同的或者类似的一系列操作,称为“循环体”。 Do-While循环 Do{ 循环体 }w...

super_weilin的博客 5238

Istio ICA考试之路---3-2

部署2个测试容器,分别是test和test2.test注入标签subset=v1。这里文档中省略了metadata的3行,可以从前面任意一个yaml复制粘贴过来。通过test2测试容器访问,50%概率触发500故障注入。通过test测试容器访问,20%概率触发延迟注入。发起20次请求,一共10次被500。

Q先生 725

c语言程序循环流程图,C语言程序结构3:循环结构

循环结构可以减少代码重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while...

weixin_39854681的博客 2139

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

六:C语言-循环结构

本篇文章详细讲解了while循环;for循环;do...while循环,break和continue语句和goto语句,并附上多个教学示例

qiao_yue的博客 1163

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C语言:循环结构

循环结构概念:循环结构是C语言的一种基本结构,它允许代码被多次重复的执行。在C语言中,有三种主要的结构:for循环,while循环和do-while循环,循环结构的存在使得程序能够高效地处理需要重复操作的任务。

hklhklhkhl123的博客 2877

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

c语言构成循环的方式有哪些,2016计算机二级C语言考点:循环结构

循环结构是结构化程序设计的三种基本结构之一,在程序设计中对于那些需要重复执行的操作应该采用循环结构来完成,利用循环结构处理各类重复操作既简单又方便。在C语言中有三种可以构成循环结构的循环语句:while、do-while和for。while语句和用while语句构成的循环结构1.1 while循环的一般形式由while语句构成的循环也称“当”型循环,while循环的一般形式如下:while***表...

weixin_35348268的博客 1270

C语言系统化精讲(六):C语言选择结构和循环结构

C语言中有三大结构,分别是顺序结构、选择结构和循环结构(分支结构):C语言顺序结构就是让程序按照从头到尾的顺序依次执行每一条C语言代码,不重复执行任何代码,也不跳过任何代码。C语言选择结构也称分支结构,就是让程序“拐弯”,有选择性的执行代码;换句话说,可以跳过没用的代码,只执行有用的代码。C语言循环结构就是让程序“杀个回马枪”,不断地重复执行同一段代码。顺序结构很好理解,无需多说,本章重点讲解选择结构和循环结构。

XAMO Lab|代码、调试与复盘笔记 5834

c语言:三种循环结构的分析与实例

循环语句在编程中非常重要,今天我们就来分析一下c语言中的三种循环结构并讨论它们的几个相关实例。 while循环 用法: while(表达式) { 循环体 } while函数表达时,先计算“表达式”的值,若表达式的值不为零时, 执行循环体;之后再次计算“表达式”的值,若表达式的值不为零时, 继续执行循环体,循环就开始运行了。若一开始表达式的值就为零,则该循环不会执行一次,直接跳过循环体,这是有区别与do while的。直到表达式的值为零或以其他方式强制退出循环时,执行while函数后的代码。 接下来,我们看

qq_34110689的博客 2812

C语言三大结构:顺序、分支、循环详解

C语言的三种结构——顺序、分支、循环,扩展部分操作符和goto语句的相关内容。

Vincent_139的博客 1188

c语言结构化语句,互联网常识:c语言可以用来实现循环的结构化语句是什么

跟大家讲解下有关c语言可以用来实现循环的结构化语句是什么,相信小伙伴们对这个话题应该也很关注吧,现在就为小伙伴们说说c语言可以用来实现循环的结构化语句是什么,小编也收集到了有关c语言可以用来实现循环的结构化语句是什么的相关资料,希望大家看到了会喜欢。c语言可以用来实现循环的结构化语句是:while、do-while和for语句。while语句是判断条件如果满足则执行否则结束循环;do-while语...

weixin_42519488的博客 683

计算机二级c语言循环,2016计算机二级C语言考点:循环结构

2016计算机二级C语言考点:循环结构循环结构是结构化程序设计的三种基本结构之一,在程序设计中对于那些需要重复执行的操作应该采用循环结构来完成,利用循环结构处理各类重复操作既简单又方便。在C语言中有三种可以构成循环结构的循环语句:while、do-while和for。while语句和用while语句构成的循环结构1.1 while循环的一般形式由while语句构成的循环也称“当”型循环,while...

weixin_42300317的博客 515
上一篇: C语言:分支结构
下一篇: C语言:《猜拳游戏》
三道渊
博客等级 码龄3年 118粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值