上期回顾:
分支
if else switch 三目运算符

格式:
if(条件)
{语句1;}
else
{语句2;}

switch (变量)
{
default:
break;
case 常量1:语句1 ;break;
case 常量2:语句2 ;break;
...
}

条件?语句1:语句2

三大循环 四大跳转语句
1、循环
while    for    do while

//最简单的 while
if(饿) 吃;
while(饿) 吃; //循环 如果饿就吃 吃到不饿为止

1.1 while循环

格式:
while(条件) // 条件可以使数字 0为假 非零为真 先判断条件 条件满足执行语句
{
语句; //循环体
} //一直执行循环体 直到条件不满足为止

while(1)  条件恒成立 一直执行------>死循环  可以用来替换getchar 防止闪屏

举个栗子~

再倒着打印出10-1 只需改一下条件就可以

1.2、for循环 (用的比较多)
格式:
for(初始化语句1;条件2;自增/自减3)
{
循环体4;
}
1刚刚进入for的时候 执行一次
判断条件2 条件为真的时候 执行4 为假结束循环
执行4之后 执行3 然后判断条件
1243 243 243...

for(;;) //死循环 条件默认为真
{}

举个栗子~

1.3、do while
格式:
do
{
循环体;
}while(条件);
//先执行一次循环体 然后判断条件 条件为真 继续循环 为假 退出循环

for和while可以相互转换 先判断条件 再执行循环体 循环体可能一次都不执行

do while 先执行再判断 循环体至少会执行一次

举个栗子~

2、循环嵌套

for循环是最简单的
    循环里面还有循环 一般只有两次
    99乘法表
    1*1=1
    2*2=4
    i*j=(i*j)
    printf(“%d%d=%d”,i,j,i*j);

举个栗子~ 99乘法表

但是打印出的结果并不美观 我们可以改一下

这样就看起来好看多了

这样是不是就更好看了呢

也可以用while改写

四大跳转
goto 无条件跳转语句 可以从任意地方跳转到任意地方 (很多公司不允许使用) 代码紊乱 维护困难
break 跳出最近的循环和switch
while(1)
{
  if(条件) (break;)//在循环中和if搭配使用 提前跳出循环
}
continue 跳过本轮循环 进入下一次循环
return 用于跳出该函数 (如果跳出main函数的时候 程序结束)

exit(0) //stdlib.h里面
在任意地方使用 都是跳出程序(程序结束)

主函数
int main()
(
  return 0;//表示程序正确结束 其他都表示非正常结束
)

对continue举个栗子~

当我们改写为while语句时

他会变成死循环 一直打印123 对continue后面的语句并没有执行

要想程序可以正常运行 将++ i放到continue前面就可以了

下年举一个打印图形的栗子

用 * 打印出五角星

练习 测试的代码如下:

 /*
上期回顾:
分支
if else switch 三目运算符 格式:
if(条件)
{语句1;}
else
{语句2;} switch (变量)
{
default:
break;
case 常量1:语句1 ;break;
case 常量2:语句2 ;break;
...
} 条件?语句1:语句2 三大循环 四大跳转语句
1、循环
while for do while //最简单的 while
if(饿) 吃;
while(饿) 吃; //循环 如果饿就吃 吃到不饿为止 格式:
while(条件) // 条件可以使数字 0为假 非零为真 先判断条件 条件满足执行语句
{
语句; //循环体
} //一直执行循环体 直到条件不满足为止
while(1) 条件恒成立 一直执行------>死循环 2、for循环 (用的比较多)
格式:
for(初始化语句1;条件2;自增/自减3)
{
循环体4;
}
1刚刚进入for的时候 执行一次
判断条件2 条件为真的时候 执行4 为假结束循环
执行4之后 执行3 然后判断条件
1243 243 243... for(;;) //死循环 条件默认为真
{} 3、do while
格式:
do
{
循环体;
}while(条件);
//先执行一次循环体 然后判断条件 条件为真 继续循环 为假 退出循环 for和while可以相互转换 先判断条件 再执行循环体 循环体可能一次都不执行
do while 先执行再判断 循环体至少会执行一次 循环嵌套
for循环是最简单的
循环里面还有循环 一般只有两次
99乘法表
1*1=1
2*2=4
i*j=(i*j)
printf(“%d%d=%d”,i,j,i*j); 四大跳转
goto 无条件跳转语句 可以从任意地方跳转到任意地方 (很多公司不允许使用) 代码紊乱 维护困难
break 跳出最近的循环和switch
while(1)
{
if(条件) (break;)//在循环中和if搭配使用 提前跳出循环
}
continue 跳过本轮循环 进入下一次循环
return 用于跳出该函数 (如果跳出main函数的时候 程序结束) exit(0) //stdlib.h里面
在任意地方使用 都是跳出程序(程序结束) 主函数
int main()
(
return 0;//表示程序正确结束 其他都表示非正常结束
) */ #include<stdio.h>
#include<stdlib.h>
int main()
{ /*
//举个栗子~ 打印出0-9
int i = 10;
while (i>0)
{
printf("%d\t",i); // \t 是制表符 相当于四个空格
i--;
}
*/ /*
//举个栗子~ 打印0-9
for (int i = 1; i < 10; i++)
{
printf("%d\t",i);
} 或者
for(int i=1;j<10;printf("%d\t",i),++i); //不推荐 */ /*
//举个栗子~ int j = 0;
do
{
printf("%d\t",j);
++j;
} while (j < 10);
*/ /*
//举个栗子~ 99乘法表 for (int i = 1; i < 10; ++i)
{
for (int j = 1; j <= i; ++j)//内圈循环一轮后 外圈循环一次
{
printf("%d*%d=%d\t",j,i,i*j);//总共能执行81次
}
printf("\n");
}
*/ /*
//举个栗子~ 用while改写99乘法表
int i = 1, j;
while (i<10)
{
j = 1;//while 循环开始前 j初始化
while (j <= i)
{
printf("%d*%d=%d\t",j,i,i*j);
++j;
}
printf("\n");
++i;
}
*/ /*
//举个栗子~ 打印10次 12345
for (int i = 0; i < 10; ++i)
{
printf("1");
printf("2");
printf("3");
if (i == 5) continue;
printf("4");
printf("5\n");
} //改写为while
int i = 0;//给循环设置初始条件
while(i<10)
{
printf("1");
printf("2");
printf("3");++i;
if (i == 5) continue;
printf("4");
printf("5\n"); }
*/ //栗子~ 打印五角星
/*
*
***
***************
*********
*** ***
* * */ for (int i = ; i <= ; ++i)//打印三行
{
//先打印7-i个空格
for (int j = ; j < - i; ++j) printf(" ");
//然后打印2*i-1个*
for (int j = ; j < * i - ; ++j) printf("*");
printf("\n");
}
for (int i = ; i <= ; ++i)//打印三行
{
//先打印i-1个空格
for (int j = ; j <i-; ++j) printf(" ");
//打印 1 4-2*i个*
for (int j = ; j < -*i; ++j) printf("*");
printf("\n");
}
for (int i = ; i <= ; ++i)//打印三行
{
//先打印空格
for (int j = ; j < - i; ++j) printf(" ");
for (int j = ; j < - i; ++j) printf("*"); //空格个数 1 5 9 4*i-3
for (int j = ; j < * i - ; ++j) printf(" ");
for (int j = ; j < - i; ++j) printf("*");
printf("\n");
}
system("pause");
return ;//表示跳出主函数
}

2018-06-18  21:29:56

C++学习(十二)(C语言部分)之 循环的更多相关文章

  1. (转)SpringMVC学习(十二)——SpringMVC中的拦截器

    http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...

  2. “全栈2019”Java第三十二章:增强for循环Foreach语法

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. Scala学习十二——高阶函数

    一.本章要点 在Scala中函数是”头等公民“(可以作为参数,返回值,赋值给其他); 可以创建匿名函数,通常还会交给其他函数; 函数参数可以给出需要稍后执行的行为; 许多集合方法都接受函数参数,将函数 ...

  4. Dart语言学习(十二) Dart面向对象

    Dart作为一种高级语言,支持面向对象的很多特性,并且支持基于mixin的继承方式. 基于mixin的继承方式是指:一个类可以继承自多个父类,相当于其他语言里的多继承. 所有的类都有同一个基类Obje ...

  5. JVM学习十二:JVM之性能监控工具

    前面我们学习了很多JVM相关的理论知识,那么本节将重点讲述的是工具的使用,正所谓:工欲善其事,必先利其器.因此,本节介绍常用的性能监控工具,用于性能监控和问题排查. 一.系统性能监控 系统性能工具用于 ...

  6. Java编程思想学习(十二) 数组和容器

    一.数组 1).数组的多种初始化方式 下面总结了初始化数组的多种方式,以及如何对指向数组的引用赋值,使其指向另一个数组对象.值得注意的是:对象数组和普通数组的各种操作基本上都是一样的:要说有什么不同的 ...

  7. java web 学习十二(session)

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  8. java入门学习(十二)运算语句 if switch

    这两天在网上做兼职,耽误了些博客见谅哈 欢迎来我的博客:www.taomaipin.com java中的运算语句而且频繁用到的无法就是条件语句和循环语句,包括if,for,while,switch,b ...

  9. 强化学习(十二) Dueling DQN

    在强化学习(十一) Prioritized Replay DQN中,我们讨论了对DQN的经验回放池按权重采样来优化DQN算法的方法,本文讨论另一种优化方法,Dueling DQN.本章内容主要参考了I ...

  10. Linux网络编程学习(十二) ----- 结语

    该书提前看完了,重点看了第四章和第六章,第七章以后只是大致浏览了一下,如果以后工作中涉及这一块再仔细研究一下,大概花了二十天的样子,主要了解了进程间的通信方式.socket编程以及五种I/O模式,看的 ...

随机推荐

  1. nyoj-0613-免费馅饼(dp)

    nyoj-0613-免费馅饼 G. 免费馅饼 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在 ...

  2. react router @4 和 vue路由 详解(一)vue路由基础和使用

    完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 1.vue路由基础和使用 a.大概目录 我这里建了一个router文件夹,文件夹下有in ...

  3. 逆袭之旅DAY24.XIA.二重进阶、双色球

    一. 选择题. 1. 以下关于二重循环的说法正确的是(D). A. 二重循环就是一般程序中只能有两个循环 B. While循环不能嵌套在for循环里 C. 两个重叠的循环不能嵌套在第三个循环里. D. ...

  4. 前端常用长度单位(px,em,rem,pt)介绍

    CSS中有不少属性是以长度作为值的.盒模型的属性就是一些很明显的值属性:width.height.margin.padding.border.除此之外还有很多其他的CSS属性的值同样也是长度值,像偏移 ...

  5. Unity3D在C#编程中的一些命名空间的引用及说明

    System包含用于定义常用值和引用数据类型.事件和事件处理程序.接口.属性和处理异常的基础类和基类.其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序环 ...

  6. 【资料收集】Converting Between cv::Mat and QImage or QPixmap

    参考: 方法一 Convert between cv::Mat and QImage 两种图片类转换 - Grandyang - 博客园 http://www.cnblogs.com/grandyan ...

  7. yaw roll pitch matrix

    http://planning.cs.uiuc.edu/node102.html http://planning.cs.uiuc.edu/node103.html

  8. 怎样关掉 ubuntu 中的 System Program Problem Detected 提示框

    怎样关掉 ubuntu 中的 System Program Problem Detected 提示框 方法如下:sudo gedit /etc/default/apport  打开该文件如下:# se ...

  9. table 奇行偶行

    jquery 方法: $("tr:odd").//偶行 $("tr:even") //奇行

  10. Gym - 100971J (思维+简单bfs)

    题目链接:http://codeforces.com/gym/100971/problem/J J. Robots at Warehouse time limit per test 2.0 s mem ...