首页 > 其他分享 >学C笔记归纳 第九篇——分支循环语句3_for_while_do while(附九九乘法表解析和三种方式实现)

学C笔记归纳 第九篇——分支循环语句3_for_while_do while(附九九乘法表解析和三种方式实现)

时间:2023-12-09 19:00:13浏览次数:34  
标签:语句 do 九九乘法 初始化 int while 循环

 基础语法模版:

  while(1 条件控制语句)

  {

    2 语句序列;

  }

顺序:12 12 12....2 1

 

  do

  {

 

    1语句序列;

 

  }

  while(2 循环控制表达式);

顺序:12 12 12....1 2

 

 

  for(1 初始化表达式;2 条件控制语句;4 调整表达式)

  {

    3 语句序列;

  }

顺序:1234 234 234...2

 

注意:

do while相对于while,循环至少执行一次,不常用;

 for 循环比较常用,因为它的语句较为集中,便于阅读;

尽量不要在for循环体内修改循环变量,防止for循环失去控制;

网上教学建议for循环语句的循环控制变量的取值采用“前闭后开”区间,实际以手感为先; // 10次循环:for(i = 0; 10 > i ; i++;)

for循环 判断部分 被省略意味这部分恒成立;//for(;;;)死循环

for(int i =0;2 > i ;4) 在循环内初始化,C99语法才支持,C++可自由切换,也支持,如果报错就立马知道有这么一回事;

 

 

循环中
break 用于直接跳出循环,结束一层循环
continue

用于跳过本次循环后面的代码,while中直接去 1 判断部分,进行下一次循环的判断

                                                  for中则调到本次的4继续,   3 4 2 3 4...2

 

 

 

 

 

 

 

现在练习用循环打印九九乘法表:

思路:

  概况:九九乘法表有九行九列;

  规律:每一行 列数递增,每一列 行数递减 ,且每行第几行 就有对应列数;

  实现:为实现两个递增,需要双层循环二者循环次数均为九,考略到 printf 函数的换行,将控制行数的循环作为外层循环。

 

#include<stdio.h>
int main()

{
    int h = 1;
    int l = 1;    //行数列数初始化
    for (h = 1; 9 >= h; h++)
    {
        for (l = 1; l <= h; l++)    // 第几行有对应列数
            printf("%d * %d = %2d   ", l, h, h * l);    //%2d两位数空格,一位数会空格以对齐
        printf("\n");    //行数循环每次结束换行
    }
    return 0;
}
习惯 h<=9,  h<10 一样

  

 

#include<stdio.h>

int main()

{
    int h = 1;
    int l = 1;    //行数列数初始化
    while( h<=9 )
    {
        //l = 1;    //确保每次行数循环开始,列数从一开始
        while (l <= h)    // 第几行有对应列数
        {
            printf("%d * %d = %2d   ", l, h, h * l);    //%2d两位数空格,一位数会空格以对齐
            l++;
        }
        h++;
        printf("\n");    //行数循环每次结束换行
    }
    return 0;
}

善用调试发现while循环与for不同,内层循环不会因外层循环开启而初始化列数,需人为加上:

#include<stdio.h>

int main()

{
int h = 1;
int l = 1; //行数列数初始化
while( h<=9 )
{
l = 1; //确保每次行数循环开始,列数从一开始
while (l <= h) // 第几行有对应列数
{
printf("%d * %d = %2d ", l, h, h * l); //%2d两位数空格,一位数会空格以对齐
l++;
}
h++;
printf("\n"); //行数循环每次结束换行
}
return 0;
}

 

 

 

 

#include<stdio.h>

int main()

{
    int h = 1;
    int l = 1;    //行数列数初始化
    do
    {
        l = 1;
        do
        {
            printf("%d * %d = %2d   ", l, h, h * l);    //%2d两位数空格,一位数会空格以对齐
            l++;
        } while (l <= h);
        h++;
        printf("\n");
    }while (h <= 9);
    return 0;
}
 和while循环一样注意 行循环内初始化列数

 

 

 

标签:语句,do,九九乘法,初始化,int,while,循环
From: https://www.cnblogs.com/xiaowanglong/p/17886975.html

相关文章

  • Java集合操作:UnsupportedOpertionExcepion产生的原因以及解决办法
    Java集合操作:UnsupportedOpertionExcepion产生的原因以及解决办法  问题产生:java.lang.UnsupportedOperationException  问题定位:在通过mybatis获取分页列表的时候写了下面这段代码 1//分页获取列表2PageResult<InsuranceBeneficiaryDO>pageList=this.insuranc......
  • django中实现Markdown
    分为两个部分:------------后台使用Markdown编辑------------前端使用Markdown展示 准备工作:pipinstalldjango-mdeditor#用于后台编辑pipinstallmarkdown#用于前端显示INSTALLED_APPS=[...省略...'mdeditor',]path("mdeditor/",......
  • Meta、Midjourney、DALL-E 3、 Adob​​e Firefly 绘图对比
    Meta刚刚推出了新的人工智能图像生成器。但它有多好呢?我将其与Midjourney、DALL-E3和AdobeFirefly的10个图像类别进行了比较。结果如下:写实照片提示:一位戴着蓝色围巾的快乐年轻女子在圣托里尼度假、白色建筑和蓝色圆顶的特写镜头2.风景照片提示:无人机航拍波拉波拉岛令人惊......
  • CF1894E Freedom of Choice
    CF1894E数据范围多少有点诈骗首先考虑\(m=1\)的情况容易发现这个\(l_i,r_i\leq10^{17}\)不是很对劲,因为直觉上感觉如果区间可取范围过大答案就是\(0\)我们可以取一个不是那么严格的限制条件来约束他,当\(r-l>n\)时,答案肯定是\(0\)。这样我们就把区间长度取到了\(10^......
  • 3-运行第一个docker image-hello world
    CentOS7.9下安装完成docker后,我们开始部署第一个dockerimage-helloworld1.以root用户登录CentOS7.9服务器,拉取centos7images命令:dockerpullhello-world[root@centos79~]#dockerpullhello-worldUsingdefaulttag:latestlatest:Pullingfromlibrary/hello-world2db29......
  • 7. 2023-11-20 12:29:32,542 [tornado.general :456 ][WARNING ][3052] Got events f
     这个警告表明Tornado检测到了有事件(events)被发送到一个已经关闭的流(stream)。在Tornado中,一个流代表一个请求或响应的数据流。这个警告可能意味着在请求处理的过程中,尝试向已经关闭的流发送了事件。可能的原因和解决方法:异步操作处理不当:在Tornado中,当你处理异步请求时,需......
  • Volatility2.6内存取证工具安装及入门Linux和Windows下安装
    (Volatility2.6内存取证工具安装及入门Linux和Windows下安装)1-1.Volatility2.6简介Volatility是一个完全开源的工具,用于从内存(RAM)样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。那么针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方......
  • Markdown
    Markdown学习二级标题三级标题字体HelloworldHelloworldHelloworldHelloworld引用保持热爱,奔赴星海分割线图片超链接跳转洛谷列表ABCABC表格名字性别生日张三男1127代码publichello......
  • Docker入门教程
    什么是DockerDocker是开源的应用容器引擎。Docker可以让你将所有应用软件以及它的以来打包成软件开发的标准化单元。Docker容器将软件以及它运行安装所需的一切文件(代码、运行时、系统工具、系统库)打包到一起,这就保证了不管是在什么样的运行环境,总是能以相同的方式运行。就好像......
  • odoo17.0 微信支付 支付宝 顺丰速递 圆通速递
    随着odoo17.0的发布,新代码的架构变动,导致之前的一些模块已经不能使用,因此,我们集中把常用的这几个模块率先进行了升级。本次发布的新模块有:微信支付支付宝支付顺丰速递圆通速递微信支付和支付宝支付我们在安装了在线商城模块之后,在设置-支付提供商中就可以看到微信支付/支......