当前位置: 首页> 科技> 名企 > 儿童摄影网页制作代码html_网页版面布局_seo营销课程培训_谷歌seo公司

儿童摄影网页制作代码html_网页版面布局_seo营销课程培训_谷歌seo公司

时间:2025/8/30 17:27:07来源:https://blog.csdn.net/yuanbenshidiaos/article/details/144588921 浏览次数:0次
儿童摄影网页制作代码html_网页版面布局_seo营销课程培训_谷歌seo公司
  1. 基本概念
    • 循环结构是C语言中一种重要的程序控制结构,它允许程序在满足一定条件的情况下,反复执行一段代码。这可以避免重复编写相似的代码,提高代码的效率和可读性。

在这里插入图片描述

  1. while循环
    • 语法格式
      • while (条件表达式) { 循环体语句; }
    • 执行流程
      • 首先判断条件表达式的值是否为真(在C语言中,非零值表示真,零值表示假)。如果为真,则执行循环体语句;执行完循环体语句后,再次判断条件表达式的值。这个过程会一直重复,直到条件表达式的值为假,此时循环结束,程序继续执行循环结构后面的代码。
    • 示例代码 - 计算1到10的累加和
#include <stdio.h>
int main() {int i = 1;int sum = 0;while (i <= 10) {sum += i;i++;}printf("1到10的累加和为:%d\n", sum);return 0;
}
 - **解释**:- 首先定义了两个变量,`i`用于计数,初始值为`1`;`sum`用于存储累加和,初始值为`0`。- 在`while`循环中,每次循环都会判断`i`是否小于等于`10`。如果是,就将`i`的值累加到`sum`中,然后`i`的值增加`1`。当`i`的值大于`10`时,循环结束,最后通过`printf`函数输出累加和。
  1. do - while循环
    • 语法格式
      • do { 循环体语句; } while (条件表达式);
    • 执行流程
      • 先执行一次循环体语句,然后判断条件表达式的值是否为真。如果为真,则继续执行循环体语句;如果为假,则循环结束,程序继续执行循环结构后面的代码。与while循环不同的是,do - while循环至少会执行一次循环体。
    • 示例代码 - 猜数字游戏(简单版)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {int number, guess;srand((unsigned int)time(NULL));number = rand() % 100 + 1;  // 生成1到100之间的随机数do {printf("请猜一个1到100之间的数字:");scanf("%d", &guess);if (guess > number) {printf("猜大了\n");} else if (guess < number) {printf("猜小了\n");}} while (guess!= number);printf("猜对了!\n");return 0;
}
 - **解释**:- 首先通过`rand`和`srand`函数结合`time`函数生成一个`1`到`100`之间的随机数,存储在`number`变量中。- 然后进入`do - while`循环,先让用户猜测一个数字,存储在`guess`变量中。接着判断`guess`和`number`的大小关系,并给出相应提示。最后判断`guess`是否等于`number`,如果不等于,则继续循环,让用户再次猜测;如果等于,则循环结束,输出猜对了的提示。
  1. for循环
    • 语法格式
      • for (初始化表达式; 条件表达式; 更新表达式) { 循环体语句; }
    • 执行流程
      • 首先执行初始化表达式,通常用于初始化循环变量。然后判断条件表达式的值是否为真,如果为真,则执行循环体语句;执行完循环体语句后,执行更新表达式,用于更新循环变量的值。然后再次判断条件表达式的值,这个过程会一直重复,直到条件表达式的值为假,此时循环结束,程序继续执行循环结构后面的代码。
    • 示例代码 - 打印九九乘法表
#include <stdio.h>
int main() {int i, j;for (i = 1; i <= 9; i++) {for (j = 1; j <= i; j++) {printf("%d x %d = %d\t", j, i, i * j);}printf("\n");}return 0;
}
 - **解释**:- 外层`for`循环控制行数,`i`从`1`变化到`9`。对于每一行`i`,内层`for`循环控制列数,`j`从`1`变化到`i`。在每次内层循环中,通过`printf`函数打印出乘法算式,`\t`表示制表符,用于对齐输出。每一行的乘法算式打印完后,通过`printf("\n")`换行,然后继续下一行的打印,最终输出完整的九九乘法表。
  1. 循环嵌套
    • 概念
      • 循环嵌套是指在一个循环内部包含另一个循环。可以是while循环嵌套while循环、do - while循环嵌套do - while循环、for循环嵌套for循环,或者不同类型的循环相互嵌套。循环嵌套通常用于处理二维或多维的数据结构,或者需要在一个循环的每次迭代中执行另一个完整的循环操作的情况。
    • 示例代码 - 打印星号矩阵(以3x3为例)
#include <stdio.h>
int main() {int i, j;for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {printf("* ");}printf("\n");}return 0;
}
 - **解释**:- 外层`for`循环控制行数,`i`从`0`变化到`2`,共`3`行。对于每一行`i`,内层`for`循环控制列数,`j`从`0`变化到`2`,共`3`列。在每次内层循环中,通过`printf("* ")`打印一个星号和一个空格。每一行的星号打印完后,通过`printf("\n")`换行,最终打印出一个`3x3`的星号矩阵。
  1. while循环
    • 语法细节
      • 条件表达式是控制循环是否继续执行的关键部分。它可以是简单的比较表达式,如i < 10,也可以是复杂的逻辑表达式,如(a > 5) && (b < 10)。在每次循环开始前,都会对这个条件表达式进行求值。
      • 循环体语句可以是一条简单的语句,也可以是多条语句组成的代码块(用花括号{}括起来)。如果循环体只有一条语句,花括号可以省略,但为了代码的可读性和可维护性,通常建议加上花括号。
    • 示例深入分析 - 计算1到10的累加和(另一种方式)
#include <stdio.h>
int main() {int sum = 0;int i = 1;while (1) {if (i > 10) {break;}sum += i;i++;}printf("1到10的累加和为:%d\n", sum);return 0;
}
 - 这个示例中,`while`循环的条件表达式直接写为`1`,这意味着条件永远为真,循环会一直执行下去。但是在循环体内部,通过`if`语句判断`i`是否大于`10`,如果大于,就使用`break`语句跳出循环。这种方式虽然不太符合常规的`while`循环写法,但在某些复杂的逻辑中,可以通过这种方式灵活地控制循环的结束条件。
  • 注意事项
    • 要确保循环条件最终能够变为假,否则会导致无限循环。例如,如果在计算累加和的示例中忘记了i++这一步,i的值将永远不会超过10,循环就会一直执行下去,这是一个常见的错误。
    • 循环体内部的变量更新操作非常重要,它会影响循环的执行次数和结果。例如,如果更新操作使得变量的值变化不符合预期,可能会导致循环提前结束或者产生错误的结果。
      在这里插入图片描述
  1. do - while循环
    • 语法细节与对比
      • while循环相比,do - while循环的特点是先执行循环体,再判断条件。这使得循环体至少会被执行一次。它的条件表达式的规则和while循环一样,非零值为真,零值为假。
      • 同样,循环体语句可以是单条语句或者多条语句组成的代码块。在结束条件表达式的括号后面需要加上分号;,这是do - while循环语法的要求,容易被忽略。
    • 示例深入分析 - 猜数字游戏(完整逻辑)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {int number, guess;int tries = 0;srand((unsigned int)time(NULL));number = rand() % 100 + 1;do {tries++;printf("请猜一个1到100之间的数字(第%d次尝试):", tries);scanf("%d", &guess);if (guess > number) {printf("猜大了\n");} else if (guess < number) {printf("猜小了\n");}} while (guess!= number);printf("猜对了!你一共猜了%d次。\n", tries);return 0;
}
 - 在这个猜数字游戏的例子中,通过`do - while`循环保证了用户至少有一次猜测的机会。每次循环时,记录猜测的次数`tries`,并根据用户猜测的数字和随机生成的数字`number`的大小关系给出提示。循环会一直进行,直到用户猜对为止,最后输出猜测的次数。
  • 注意事项
    • 由于循环体至少会执行一次,所以在编写代码时要考虑第一次执行循环体可能带来的影响。例如,如果循环体内部有一些对变量的初始化操作,可能会导致不符合预期的结果,因为这些操作可能会被执行多次。
  1. for循环
    • 语法各部分作用
      • 初始化表达式只在循环开始时执行一次,用于初始化循环变量。它可以是声明并初始化一个变量,如int i = 0;,也可以是多个表达式,用逗号分隔,如int i = 0, j = 1;
      • 条件表达式的作用和while循环中的条件表达式一样,用于控制循环是否继续执行。每次循环开始前都会对其进行求值。
      • 更新表达式用于在每次循环体执行完后更新循环变量的值。它也可以是多个表达式,用逗号分隔,如i++, j--;
    • 示例深入分析 - 打印九九乘法表(详细解释)
#include <stdio.h>
int main() {int i, j;for (i = 1; i <= 9; i++) {// 外层循环控制行数for (j = 1; j <= i; j++) {// 内层循环控制列数,列数随着行数的增加而增加printf("%d x %d = %d\t", j, i, i * j);}printf("\n");}return 0;
}
 - 外层`for`循环的变量`i`从`1`开始,每次增加`1`,直到`i`大于`9`时循环结束。对于每一个`i`的值,内层`for`循环的变量`j`从`1`开始,每次增加`1`,直到`j`大于`i`时内层循环结束。在内层循环中,通过`printf`函数打印出乘法算式,`\t`是制表符,用于使输出的内容在控制台中对齐,看起来更整齐。当内层循环结束后,通过`printf("\n")`进行换行,然后外层循环进入下一次迭代,开始打印下一行的乘法表。
  • 注意事项
    • 要注意循环变量的初始化、条件判断和更新操作之间的配合。如果初始化的值不符合要求,或者更新操作没有使循环变量朝着结束循环的方向变化,可能会导致无限循环或者循环次数不符合预期。
    • 在多重循环嵌套的情况下,要清楚每个循环变量的作用范围和变化规律,避免变量名冲突和逻辑混乱。
  1. 循环嵌套
    • 概念深入理解
      • 循环嵌套实际上是在一个循环的迭代过程中,又执行了另一个完整的循环。可以把外层循环看作是大的循环框架,内层循环看作是在这个框架的每个步骤中执行的小循环。
      • 内层循环的完整执行次数是外层循环每次迭代时内层循环执行次数的总和。例如,在打印星号矩阵的例子中,如果外层循环执行n次,内层循环每次执行m次,那么内层循环总共会执行n*m次。
    • 示例深入分析 - 打印星号矩阵(多种变化)
      • 打印直角三角形星号图案
#include <stdio.h>
int main() {int i, j;for (i = 1; i <= 5; i++) {for (j = 1; j <= i; j++) {printf("*");}printf("\n");}return 0;
}
   - 这里外层循环控制行数,从`1`到`5`。内层循环控制每行的星号数量,星号数量与行数相同。例如,第一行打印`1`个星号,第二行打印`2`个星号,以此类推,最终打印出一个直角三角形的星号图案。- **打印倒直角三角形星号图案**
#include <stdio.h>
int main() {int i, j;for (i = 5; i >= 1; i--) {for (j = 1; j <= i; j++) {printf("*");}printf("\n");}return 0;
}
   - 这个例子与前面的直角三角形类似,不同之处在于外层循环的变量`i`是从`5`递减到`1`。这样就可以打印出一个倒直角三角形的星号图案,第一行有`5`个星号,最后一行有`1`个星号。
  • 注意事项
    • 在多层循环嵌套中,内层循环的执行速度会比外层循环快。因为内层循环在每次外层循环迭代时都会完整地执行一遍。
    • 当内层循环和外层循环使用相同的变量名时,会出现变量覆盖的问题。为了避免这种情况,建议使用不同的变量名来区分内层和外层循环变量,并且要清楚每个变量的作用和变化范围。
    • 在这里插入图片描述
关键字:儿童摄影网页制作代码html_网页版面布局_seo营销课程培训_谷歌seo公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: