C++学习(十二)(C语言部分)之 循环
上期回顾:
分支
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语言部分)之 循环的更多相关文章
- (转)SpringMVC学习(十二)——SpringMVC中的拦截器
http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...
- “全栈2019”Java第三十二章:增强for循环Foreach语法
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Scala学习十二——高阶函数
一.本章要点 在Scala中函数是”头等公民“(可以作为参数,返回值,赋值给其他); 可以创建匿名函数,通常还会交给其他函数; 函数参数可以给出需要稍后执行的行为; 许多集合方法都接受函数参数,将函数 ...
- Dart语言学习(十二) Dart面向对象
Dart作为一种高级语言,支持面向对象的很多特性,并且支持基于mixin的继承方式. 基于mixin的继承方式是指:一个类可以继承自多个父类,相当于其他语言里的多继承. 所有的类都有同一个基类Obje ...
- JVM学习十二:JVM之性能监控工具
前面我们学习了很多JVM相关的理论知识,那么本节将重点讲述的是工具的使用,正所谓:工欲善其事,必先利其器.因此,本节介绍常用的性能监控工具,用于性能监控和问题排查. 一.系统性能监控 系统性能工具用于 ...
- Java编程思想学习(十二) 数组和容器
一.数组 1).数组的多种初始化方式 下面总结了初始化数组的多种方式,以及如何对指向数组的引用赋值,使其指向另一个数组对象.值得注意的是:对象数组和普通数组的各种操作基本上都是一样的:要说有什么不同的 ...
- java web 学习十二(session)
一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...
- java入门学习(十二)运算语句 if switch
这两天在网上做兼职,耽误了些博客见谅哈 欢迎来我的博客:www.taomaipin.com java中的运算语句而且频繁用到的无法就是条件语句和循环语句,包括if,for,while,switch,b ...
- 强化学习(十二) Dueling DQN
在强化学习(十一) Prioritized Replay DQN中,我们讨论了对DQN的经验回放池按权重采样来优化DQN算法的方法,本文讨论另一种优化方法,Dueling DQN.本章内容主要参考了I ...
- Linux网络编程学习(十二) ----- 结语
该书提前看完了,重点看了第四章和第六章,第七章以后只是大致浏览了一下,如果以后工作中涉及这一块再仔细研究一下,大概花了二十天的样子,主要了解了进程间的通信方式.socket编程以及五种I/O模式,看的 ...
随机推荐
- 自定义xadmin后台首页
登陆xadmin后台,首页默认是空白,可以自己添加小组件,xadmin一切都是那么美好,但是添加小组件遇到了个大坑,快整了2个礼拜,最终实现想要的界面.初始的页面如图: 本机后台显示这个页面正常,do ...
- day22-python操作mysql2
数据库连接池 python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问数量达到一定数量时, ...
- TTL集成门电路工作原理和电压传输特性
集成电路(Integrated Circuit 简称IC):即把电路中半导体器件,电阻,电容以及连线等制作在一块半导体基片上构成一个完整的电路,并封装到一个管壳内 集成电路的有点:体积小,重量轻,可靠 ...
- java套接字(socket)实例
客户端socket 流程: 1.连接远程主机 2.发送数据 3.接收数据 4.关闭流与socket连接 实例: import java.io.*; import java.net.Socket; im ...
- vue.set动态新增对象属性,触发dom渲染
当我们给一个props或者data中被观测的对象添加一个新的属性的时候,不能直接添加,必须使用Vue.set方法 /** * ==== 选择产品 ==== * 因为vue实现双向数据绑定的机制是数据劫 ...
- 异步IO(协程,消息循环队列)
同步是CPU自己主动查看IO操作是否完成,异步是IO操作完成后发出信号通知CPU(CPU是被通知的) 阻塞与非阻塞的区别在于发起IO操作之后,CPU是等待IO操作完成再进行下一步操作,还是不等待去做其 ...
- :组合模式:Component
#ifndef __COMPONENT_H__ #define __COMPONENT_H__ #include <iostream> #include <vector> us ...
- :工厂模式1:方法模式--Pizza
#ifndef __PIZZA_H__ #define __PIZZA_H__ class Pizza { public: Pizza(){} virtual ~Pizza(){} virtual c ...
- 获取表单内元素组装成对象类型,方便datagrid的load取参数
/** * 获取表单数据,并将其转换为对象 */ function getFormObj(formId) { var formObj = {}; var inputs = $('#'+formId). ...
- centos6.6安装hadoop-2.5.0(三、完全分布式安装)
操作系统:centos6.6(三台服务器) 环境:selinux disabled:iptables off:java 1.8.0_131 安装包:hadoop-2.5.0.tar.gz hadoop ...