回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录]
1.5.2 循环深入——输出多行星号
例1.7 编程序,输出如下的星号图有人写出程序:
//例程ch1-11.cpp #include <iostream> using namespace std; int main() { cout<<"********"<<endl; cout<<"********"<<endl; cout<<"********"<<endl; cout<<"********"<<endl; cout<<"********"<<endl; cout<<"********"<<endl; cout<<"********"<<endl; return 0; }
这个程序无疑是能够完成要求的任务的。
这里只要求输出7行,带着如果输出700行的忧虑,怀着没有用上1.5.1小节引用的循环的愧疚,写出的程序可以是例程ch1-12.cpp(用while循环)或例程ch1-13.cpp(用for循环):
//例程ch1-12.cpp,用while循环 #include <iostream> using namespace std; int main() { int i=0; while(i<7) { cout<<"********"<<endl; i++; } cout<<endl; return 0; } |
//例程ch1-13.cpp,用for循环 #include <iostream> using namespace std; int main() { int i; for(i=0; i<7; i++) { cout<<"********"<<endl; } cout<<endl; return 0; } |
再进一步,两个程序中第9行输出8个星号的工作,也可以用执行8次的循环,每次输出1个星号完成的!因此,程序进行了如下改造(尽管 可以用while语句也可以用for语句,下面的程序不玩组合游戏了,输出8个星号的工作交给更擅长计数的for循环完成):
//例程ch1-14.cpp #include <iostream> using namespace std; int main() { int i=0,j; while(i<7) { for(j=0;j<8;j++) { cout<<"*"; } cout<<endl; i++; } cout<<endl; return 0; } |
//例程ch1-15.cpp #include <iostream> using namespace std; int main() { int i,j; for(i=0; i<7; i++) { for(j=0; j<8; j++) { cout<<"*"; } cout<<endl; } cout<<endl; return 0; } |
如果可以,可尝试着自己读一读。如果读不下去,不要强迫自己。看一下“微课件1.8 输出星号的循环程序在执行”再说。
|
|