《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 }
6、switch语句:用switch语句相较于if语句可以提供多条分支选择,因此switch常见的一个用途是制作选择菜单。