【C语言功法手册】第三话 · 循环结构一点就通

💃🕺kiko小剧场


kiko:各位真的是好久不见,【百炼成神】专栏终于要回归了!

小明:真的是拖欠了好久哦🤯···我都不打算订阅了的说。

kiko:呜呜呜😭,我保证,以后一周至少两更!一周两更!

小明:行叭!那就赶紧开始叭~

 🌟🌟往期必看🌟🌟

【C语言百炼成神】功法一·常量与变量

【C语言百炼成神】功法二·语句与选择结构

目录

💃🕺kiko小剧场

🍺知识点1:循环结构与转向结构

🍯1.1 while语句

🥝1.while语句的基本知识

📜典型例题1.演示字符从两端向中间移动

🥝2.while语句与转向语句

🥝3.break语句的基本知识

🥝4.continue语句的基本知识

🍯1.2 for语句

🥝1.for语句的基本知识

📜典型例题2.打印[100,999]范围内所有的“水仙花数”。

📜典型例题3.计算n的阶乘(n!)

📜典型例题4.计算计算1!+2!+3!+......+n!

🥝2.for语句的扩展形式

🥝3.for循环省略形式

🥝4.for循环的一点小tip

🍯1.3 do-while语句

🥝1.do-while语句的基本知识

📜典型例题5.计算两个数的最大公约数

📜典型例题6.在有序数组中查找具体数字

🍯1.4 转向语句

🥝1.goto语句的基本知识

📜典型例题7.打印1~20的数字(不可使用循环语句)

🍺知识点1:循环结构与转向结构


Q1:什么是循环结构?

A1:循环结构是程序中的一种很重要的结构,在给定条件成立时,反复执行某程序段,直到条件不成立为止,给定的条件称为循环条件,反复执行的程序段称为循环体。C语言提供以下3种循环语句:while语句for语句do-while语句

🍯1.1 while语句


🥝1.while语句的基本知识

Q1:什么是while语句?

A1:while语句在实现循环过程中,先判断循环条件,再执行循环体,其一般语法格式为:

while(表达式)
    循环体语句;

执行过程:当表达式为真,即非0时,执行循环语句,然后重复上述过程,一直到表达式为0时,while语句结束。

📜案例1.无限循环

#include<stdio.h>
int main()
{
    int a=1;
    while(a)
    printf("hehe\n");
    return 0;
}

kiko🎃:案例1的循环体中没有改变循环控制变量值的语句,while后的表达式始终为1,因此循环永远不结束。

📜案例2.正常循环

#include<stdio.h>
int main()
{
    int a=1;
    while(a<10)
    {
       printf("hehe\n");
       a++;
    }
    return 0;
}

对于正常的循环过程,我们需要注意几点特征:
(1)循环体在包含一条以上语句时,应当使用代码块括起来{ },以复合语句的形式出现,否则它只认为while后面的第一条语句是循环体。

while(a<10)
    printf("hehe\n"); //只循环这一句
    a++; //不处于while循环中

(2)循环前,必须给循环控制变量赋初值,例如本例中将a赋值了1。

int a=1;//在while循环前初始化了a
while(a<10)
{···

(3)循环体中,必须有改变循环控制变量值的语句,使得循环趋向结束,例如本例中的a++,如果没有这条语句,循环将永远不会结束。


📜典型例题1.演示字符从两端向中间移动

什么叫从两端向中间移动呢,我们可以先举个例子,在下例中可以看到字幕从两边开始向中间补全,这就是我们希望达到的结果,那么具体我们该如何通过while循环来实现呢?

"##########" ——>"ki######zz" ——>"kiko##ngzz"——>"kikokingzz"

我们不妨设置两个数组列表,然后不断通过while循环,将arr1中数组元素值赋值给arr2的对应位置,从两端向中间赋值,然后通过while循环过程中不断清屏+打印的操作来实现。

    char arr1[] = { "This is kikokingzz !" };
    char arr2[] = { "####################" };

具体的程序代码如下:

#include<stdio.h>
#include<string.h>
#include<windows.h>//为了使用后面的Sleep函数
#include<stdlib.h>//为了使用system函数
int main()
{
    char arr1[] = { "This is kikokingzz !" };
    char arr2[] = { "####################" };
    int left = 0;
    int right = strlen(arr1) - 1;//strlen不将\0算入,因此不需要-2
    while (left <= right)
    {
        arr2[left] = arr1[left];
        arr2[right] = arr1[right];
        printf("%s\n", arr2);
        //休息1s
        Sleep(20);//睡眠函数-单位是毫秒
        system("cls");//执行系统命令函数,cls-清空屏幕
        left++;
        right--;
    }
    printf("%s\n", arr2);
    return 0;
}

kiko🎃:值得注意的是这边用到了睡眠函数Sleep( ),它会使计算机程序(进程,任务或线程)进入休眠,单位是毫秒,因此上面的Sleep(20)就是休眠了20毫秒;system函数代表执行系统命令,system("cls")就是执行命令”清屏“的意思。


🥝2.while语句与转向语句

Q1:什么是转向语句?

A1:转向语句可以改变程序的流程,使程序从其所在的位置转向另一处执行。转向语句包括3种,分别是goto语句break语句continue语句其中break语句continue语句经常用在循环结构中,所以我们在这里提到啦!


🥝3.break语句的基本知识

在循环中遇到break,就停止后期所有的循环,直接终止当前循环。

Q1:如何理解“当前”二字?

A1:

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kikokingzz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值