你首先需要知道‘递归’|

2c237c6

园龄:1年4个月粉丝:2关注:0

c语言循环结构

1.while

在C语言中,while循环是一种迭代结构,它允许我们重复执行一段代码,直到给定的条件变为假。while循环的基本语法如下:

while (condition) {
    // 循环体
}

在每次循环开始之前,首先会对条件进行评估。如果条件为真,则执行循环体中的代码。执行完循环体后,再次检查条件。如果条件仍然为真,则继续执行循环体,以此类推。只有当条件变为假时,循环才会终止,程序将继续执行循环之后的代码。

下面是一个简单的示例,演示了如何使用while循环计算1到10的和:

#include <stdio.h>

int main() {
    int i = 1;
    int sum = 0;

    while (i <= 10) {
        sum += i;
        i++;
    }

    printf("Sum is: %d\n", sum);

    return 0;
}

在上面的例子中,我们初始化变量i为1,并将变量sum初始化为0。然后,while循环检查条件i <= 10,如果条件为真,则执行循环体中的代码。循环体中的代码将当前的i值加到sum中,并递增i的值。循环继续进行,直到i的值超过10时,条件变为假,循环终止。最后,我们打印出计算得到的sum的值。

需要注意的是,如果循环条件一开始就为假,那么循环体中的代码将不会执行,直接跳过循环。因此,在使用while循环时,要确保循环条件能够在某个时刻变为假,以避免无限循环的情况发生。

例子whie循环实现1~100的相加

你可以使用一个 while 循环来实现 1 到 100 的相加。下面是一个示例代码:

total = 0
num = 1

while num <= 100:
    total += num
    num += 1

print("1 到 100 的和为:", total)

这段代码中,我们首先初始化变量 totalnum,分别表示累加的总和和当前要累加的数字。然后,在 while 循环中,我们判断 num 是否小于等于 100,如果是,则将 num 加到 total 中,并将 num 自增 1。循环会一直执行,直到 num 大于 100。最后,我们打印出累加的结果。

运行这段代码,你将得到输出:1 到 100 的和为: 5050。

2.do~while

在 C 语言中,do-while 循环是一种后测试循环结构,它先执行一次循环体,然后再根据条件判断是否继续执行循环。这种结构确保循环体至少会被执行一次。

do-while 循环的语法如下:

do {
    // 循环体
} while (条件);

首先,使用 do 关键字来指示开始一个 do-while 循环。然后,在花括号 {} 内编写循环体的代码。循环体是需要重复执行的代码块。接着,使用 while 关键字指定循环的条件,条件是一个表达式,用于判断是否继续执行循环。如果条件为真,则继续执行循环;如果条件为假,则结束循环。

下面是一个更详细的示例代码,演示了 do-while 循环的使用:

#include <stdio.h>

int main() {
    int num = 0;

    do {
        printf("当前数字:%d\n", num);
        num++;
    } while (num < 5);

    printf("循环结束\n");

    return 0;
}

在这个示例中,我们声明并初始化一个整型变量 num,初始值为 0。然后,使用 do-while 循环,循环体中打印出当前数字的值,并将 num 值递增。循环条件为 num < 5,即当 num 小于 5 时继续循环。当 num 的值达到 5 时,条件不满足,循环结束。

运行这段代码,你将得到以下输出:

当前数字:0
当前数字:1
当前数字:2
当前数字:3
当前数字:4
循环结束

可以看到,循环体至少执行了一次,并且在满足条件的情况下继续执行了四次,直到条件不再满足。最后,循环结束并打印出 “循环结束”。

3.for循环(执行顺序)

在 C 语言中,for 循环是一种常用的循环结构,它可以用于重复执行一段代码块,直到满足退出循环的条件。for 循环通常用于遍历数组、计数器等场景。

for 循环的语法如下:

for (初始化表达式; 条件表达式; 更新表达式) {
    // 循环体
}

首先,在小括号 () 中编写三个表达式,用分号 ; 隔开:

  • 初始化表达式:在循环开始前执行一次,用于初始化循环变量。
  • 条件表达式:在每次循环开始前判断条件,如果条件为真,则继续执行循环;如果条件为假,则结束循环。
  • 更新表达式:在每次循环结束后执行,用于更新循环变量。

然后,在花括号 {} 中编写循环体的代码,循环体是需要重复执行的代码块。

下面是一个示例代码,演示了 for 循环的使用:

#include <stdio.h>

int main() {
    int i;

    for (i = 0; i < 5; i++) {
        printf("当前数字:%d\n", i);
    }

    printf("循环结束\n");

    return 0;
}

在这个示例中,我们声明并初始化一个整型变量 i,初始值为 0。然后,使用 for 循环,循环条件为 i < 5,即当 i 小于 5 时继续循环。在每次循环开始前,都会判断条件表达式 i < 5 的值,只有在条件为真时才会执行循环体。循环体中打印出当前数字的值,并将 i 值递增。循环结束后,打印出 “循环结束”。

运行这段代码,你将得到以下输出:

当前数字:0
当前数字:1
当前数字:2
当前数字:3
当前数字:4
循环结束

可以看到,循环体重复执行了五次,直到 i 的值达到 5,循环条件不再满足,循环结束。

重点:

for 循环的执行顺序

在 for 循环中,代码的执行顺序遵循以下步骤:

  1. 执行初始化表达式:在循环开始前,初始化表达式会被执行一次。这通常用于初始化循环变量,例如 int i = 0

  2. 执行条件表达式:在每次循环开始前,条件表达式会被求值。如果条件表达式的结果为真(非零),则继续执行循环体;如果条件表达式的结果为假(零),则跳出循环,不再执行循环体。

  3. 执行循环体:如果条件表达式的结果为真,循环体会被执行。循环体是包含在花括号 {} 中的代码块,它是需要重复执行的部分。

  4. 执行更新表达式:在每次循环结束后,更新表达式会被执行一次。更新表达式通常用于更新循环变量的值,例如 i++

  5. 跳回步骤 2:执行完更新表达式后,程序会跳回步骤 2,重新判断条件表达式的结果。如果条件仍然为真,则继续执行循环体;如果条件为假,则跳出循环。

这个过程会不断重复,直到条件表达式的结果为假,才会跳出循环。

下面是一个示例代码,展示了 for 循环的执行顺序:

#include <stdio.h>

int main() {
    int i;

    for (i = 0; i < 5; i++) {
        printf("当前数字:%d\n", i);
    }

    printf("循环结束\n");

    return 0;
}

在这个示例中,循环的执行顺序如下:

  1. 执行初始化表达式 i = 0,将 i 初始化为 0。
  2. 执行条件表达式 i < 5,判断 i 是否小于 5。由于 i 的初始值是 0,条件为真,继续执行循环。
  3. 执行循环体,打印出当前数字的值。
  4. 执行更新表达式 i++,将 i 的值递增。
  5. 跳回步骤 2,重新判断条件表达式。如果 i 的值仍然小于 5,继续执行循环;否则跳出循环。
  6. 重复步骤 3-5,直到 i 的值达到 5,条件不再满足,跳出循环。
  7. 执行循环结束后的代码,打印出 “循环结束”。

运行这段代码,你将得到以下输出:

当前数字:0
当前数字:1
当前数字:2
当前数字:3
当前数字:4
循环结束

可以看到,循环体重复执行了五次,直到循环条件不再满足。

4.终止语句(break,continue)

终止语句(break 和 continue)是在编程中用于控制循环语句执行流程的关键字。

  1. break语句:当break语句出现在循环语句(如for、while、do-while)中时,会立即终止当前循环的执行,并跳出循环体,执行循环之后的代码。break语句通常与条件语句结合使用,用于提前结束循环。

示例:

for i in range(1, 10):
    if i == 5:
        break
    print(i)

输出:

1
2
3
4

在上述示例中,当i等于5时,break语句被执行,循环终止,因此只输出了1到4。

  1. continue语句:当continue语句出现在循环语句中时,会终止当前迭代的执行,并跳过该次循环中continue语句之后的代码,开始下一次迭代。

示例:

for i in range(1, 6):
    if i == 3:
        continue
    print(i)

输出:

1
2
4
5

在上述示例中,当i等于3时,continue语句被执行,跳过了输出3的步骤,直接进入下一次迭代。

需要注意的是,break和continue语句都只能在循环语句中使用,否则会引发语法错误。另外,它们通常用于条件判断,以便在满足某些条件时提前结束循环或跳过当前迭代。
循环示例金字塔打印

金字塔打印是一个常见的循环示例,可以使用嵌套循环来实现。以下是一个使用Python语言实现金字塔打印的示例代码:

rows = 5  # 金字塔的行数

for i in range(rows):
    # 打印空格
    for j in range(rows - i - 1):
        print(" ", end="")
    
    # 打印星号
    for k in range(2 * i + 1):
        print("*", end="")
    
    print()  # 换行

输出结果:

    *
   ***
  *****
 *******
*********

在上述示例中,外层循环控制金字塔的行数,内层循环分别用于打印每一行的空格和星号。具体步骤如下:

  1. 外层循环(i循环)从0到rows-1,控制金字塔的行数。
  2. 内层循环(j循环)用于打印每一行的空格,通过计算每一行的空格数量,即rows-i-1,来控制空格的个数。
  3. 内层循环(k循环)用于打印每一行的星号,通过计算每一行星号的数量,即2*i+1,来控制星号的个数。
  4. 在打印完每一行的空格和星号后,使用print()进行换行。

通过嵌套循环的方式,逐行打印空格和星号,就可以实现金字塔的打印效果。你可以根据需要修改rows的值来控制金字塔的高度。

同理多层金字塔打印:

#include<stdio.h>
void printPyramid(int);
int main()
{
    int n1,n2;
    scanf("%d",&n1);
    scanf("%d",&n2);
    printPyramid(n1);
    printPyramid(n2);
    return 0;
}
void printPyramid(int n)
{
    int i,j,mid;
    mid=(2*n-1)/2;
//    控制行 
//一开始扩张的范围为0 
    int r=0;
    for(i=0;i<n;i++)
    {
//        一开始的范围为0 
        for(j=0;j<mid+r;j++) 
        {
            if(j<=mid+r&&j>=mid-r)
            {
                printf("*");
            }
            else 
            {
                printf(" ");
            }
        }
        printf("\n");
        r++;//扩大扩张的范围 
    } 
}

可以打印俩层金字塔,一个空格,然后一个 ’ * '逐步打印空格和 ’ * ',这就是金字塔的核心实现>

本文作者:2c237c6

本文链接:https://www.cnblogs.com/27dCnc/p/18568693

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   2c237c6  阅读(7)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起