《21天学会C++》学习笔记第7章控制程序流程

1、迭代意味着重复做同样的工作。迭代的主要方法是循环。

2、while()循环,do...while()循环,for循环,

3、注意do...while()循环的do是真的要出现的,不仅仅是一个标志而已:

 1 #include<iostream>
 2 int main()
 3 {
 4 using namespace std;
 5 int counter;
 6 cout<<"how many hellows";
 7 cin>>counter;
 8 do    //注意这里的do一定不能少的,是基本格式问题
 9    {
10       cout<<"hello\n";
11       counter--;
12     }
13 while (counter>0);
14 cout<<"Counter is:"<<counter<<endl;
15 return 0;
16 }

4、for循环的两种高级用法:不太常见:

①for(;;)循环,相当于是while(true)循环,需要在别处设置循环initialization,test,action。

②for语句中使用空语句:for(;counter<5;)相当于一个while循环,while(counter<5)

③for循环中使用空循环体:

#include<iostream>

int main()

{

for(int i=0;i<5;std::cout<<"i: "<<i++<<std::endl)

;//空的循环体,只要把分好和循环头对应齐就好了

return 0;

}

5、使用循环而不是递归来实现Fibonacci数列,算法复杂度比递归方法要少很多:

 1 #include <iostream>
 2 #include <iomanip>
 3 using namespace std;
 4 int Fibonacci(int position);
 5 int main()
 6 {
 7     int position;
 8     cout<<"please input the position:";
 9     cin>>position;
10     cout<<"the Fibonacci number in position"<<position<<"is:"<<Fibonacci(position)<<endl;
11     system("PAUSE");
12     return 0;
13 }
14
15 int Fibonacci(int position)
16 {
17     int minusTwo=1,minusOne=1,answer=2;
18     if (position<3)
19     {
20         answer=1;
21     }
22     if (position==3)
23     {
24         answer=1;
25     }
26     for (;position>3;position--)
27     {
28         minusTwo=minusOne;
29         minusOne=answer;
30         answer=minusOne+minusTwo;
31     }
32     return answer;
33 }

时间: 2024-10-13 23:12:47

《21天学会C++》学习笔记第7章控制程序流程的相关文章

UML学习笔记系列-第二章 开发流程

第二章  开发流程 UML是从一大推面向对象分析与设计的方法论中所诞生出来的.在某种程度范围内,这些方法论都会在图形模型语言中混合某种开发流程,以说明软件该如何开发下去. 1.反覆式和瀑布式的开发流程 两者的本质差异在于:我们该如何把项目分解成一些比较小的部分.我们需要把项目加以分解,这样一来大家就可以随时掌握问题,并追踪进度. 瀑布式开发风格是根据开发活动来分解项目的.为了编写软件,你需要进行一些特定的开发活动,包括:需求分析.设计.编程与测试.如果是一年的时间需要如下分配: 分析阶段 设计阶

Java私人学习笔记——第3章 程序流程控制

3.1 分支结构 3.1.1 if语句结构 if( ){ }else{ } 3.1.2 条件运算符 condition ? expr1 : expr2 3.1.3 switch语句结构 switch( ){ case value1: ...           [break;] case value2: ...           [break;] case value3: ...           [break;] } 3.2 循环结构 3.2.1 while循环结构 while(boole

【算法导论】学习笔记——第6章 堆排序

堆这个数据结构应用非常广泛,数字图像处理的算法里也见过.似乎记得以前老师上课说需要用树结构实现堆排序,看了一下算法导论才明白其精髓.堆虽然是一棵树,但显然没必要非得用树结构实现堆排序.堆排序的性质很好,算法时间复杂度为O(nlgn). 1. 堆排序的简要说明.二叉堆可以分为两种形式:最大堆和最小堆.在最大堆中,最大堆性质是指除了根以外的所有结点i都要满足: A[PARENT(i)] >= A[i]:在最小堆中,最小堆性质是指除了根以外的所有结点i都要满足: A[PARENT(i)] <= A[

APUE学习笔记:第九章 进程关系

9.1 引言 本章将更详尽地说明进程组以及POSIX.1引入的会话的概念.还将介绍登陆shell(登录时所调用的)和所有从登陆shell启动的进程之间的关系. 9.1 终端登陆 系统管理员创建通常名为/etc/ttys的文件,其中每个终端设备都有一行,每一行说明设备名传递给getty程序的参数.当系统自举时,内核创建进程ID为1的进程,依旧是init进程.init进程使系统进入多用户状态.init进程读文件/etc/ttys,对每一个允许登陆的终端设备,init调用一次fork,所生成的子进程则

APUE学习笔记:第一章 UNUX基础知识

1.2 UNIX体系结构 从严格意义上,可将操作系统定义为一种软件(内核),它控制计算机硬件资源,提供程序运行环境.内核的接口被称为系统调用.公用函数库构建在系统调用接口之上,应用软件即可使用公用函数库,也可使用系统调用.shell是一种特殊的应用程序,它为运行其他应用程序提供了一个接口 从广义上,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,并给予计算机以独有的特性(软件包括系统实用程序,应用软件,shell以及公用函数库等) 1.3  shell shell是一个命令行解

APUE学习笔记:第二章 UNIX标准化及实现

2.2UNIX标准化 2.2.1 ISO C 国际标准化组织(International Organization for Standardization,ISO) 国际电子技术委员会(International Electrotechnical Commission,IEC) ISO C标准的意图是提供C程序的可移植性,使其能适合于大量不同的操作系统,而不只是UNIX系统.此标准不仅定义了C程序设计语言的语法和语义,还定义了其标准库.因为所有现今的UNIX系统都提供C标准中定义的库例程,所以该

java JDK8 学习笔记——第16章 整合数据库

第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程序. 2.JDBC标准主要分为两个部分:JDBC应用程序开发者接口和JDBC驱动程序开发者接口.应用程序需要联机数据库,其相关API主要在java.sql和javax.sql两个包中. 3.应用程序使用JDBC联机数据库的通用语法: Connection conn = DriverManager.g

Stealth视频教程学习笔记(第二章)

Stealth视频教程学习笔记(第二章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提炼出其中的知识点和思路思想. 视频地址在(http://www.youku.com/playlist_show/id_23389553.html),是一个Stealth的专辑,这里只放上本章第一个视频,其它的大家在上面的链接中慢慢看吧. 第二章有一个视频是FLV格式的,我没法把字幕嵌入其中,所以优酷

Shell学习笔记——第三章

第三章 /etc/passwd 文件包含一个所有系统用户账户组成的列表,以及一些关于每个用户的基本信息. 例rich:x:501:Rich Blum:/home/rich:/bin/bash 每个条目都有7个数据字段,例使用冒号分隔.系统使用这些字段中的数据向用户分配具体的特性.这些字段分别有 用户名:用户密码(如果密码存储在其他文件中,则为占位符):用户的系统用户ID编号:用户的系统组的ID编号:用户的全名:用户默认的主目录:用户的默认Shell目录: cd 命令 略过 列表命令(ls) 参数