迴 圈
LOOP
同樣的動作重複執行:罰寫
for 迴 圈
在......
for( 宣告初始變數 ; 須符合條件 ; 更新 ){
執行;
}for( int i=1 ; i<10 ; i++ ){
cout<<"跑起來!!"<<'\n';
}有一等差數列:
首項為4
公差為-2
末項為-50
求總和為多少
int sum=0;
for(int i=4 ; i>=-50 ; i-=2){
sum+=i;
}4+2+...+(-48)+(-50)=?
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=0 ; i<n ; i++){
cout<<"I don't say swear words!"<<'\n';
}
return 0;
}練習!
while 迴 圈
當......
while(須符合的條件){
執行;
}int time;
cin>>time;
while(time>21){
cout<<"報告趕不完準備熬夜了>x<"<<'\n';
}int time;
cin>>time;
while(time<21){
cin>>time;
}
cout<<"報告趕不完準備熬夜了>x<"<<'\n';
反覆報時到不符條件,跳出迴圈輸出
int time;
cin>>time;
while(time>=0){
if(time<21 && time>12){
cout<<"要開始趕報告了啊啊啊!!!"<<'\n';
}
else if(time>=21){
cout<<"報告趕不完準備熬夜了>x<"<<'\n';
}
cin>>time;
}
配合if-else
練習!
有一個成績輸入的系統(輸入皆為≤100的整數):
當成績<60,會顯示 不及格 ;
當成績≥60且≤100,會顯示 及格 ;
當輸入為負,即結束輸入。
#include <iostream>
using namespace std;
int main()
{
int score;
cin>>score;
while(score>0){
if(score<60){
cout<<"不及格"<<'\n';
}
else if(score>=60 && score<=100){
cout<<"及格"<<'\n';
}
cin>>score;
}
return 0;
}do-while
#include <iostream>
using namespace std;
int main()
{
int score;
cin>>score;
while(score>0){
if(score<60){
cout<<"不及格"<<'\n';
}
else if(score>=60 && score<=100){
cout<<"及格"<<'\n';
}
cin>>score;
}
return 0;
}#include <iostream>
using namespace std;
int main()
{
int score;
do{
cin>>score;
if(score<60 && score>0){
cout<<"不及格"<<'\n';
}
else if(score>=60 && score<=100){
cout<<"及格"<<'\n';
}
}while(score>0);
return 0;
}continue & break
繼續/破壞
for(int i=0;i<10;i++){
if(i==5){
break;
}
cout<<i<<" ";
}for(int i=0;i<10;i++){
if(i==5){
continue;
}
cout<<i<<" ";
}continue
break
0 1 2 3 4
0 1 2 3 4 6 7 8 9
迴圈應用
+巢狀迴圈
for跟while是可以交換的!
試著用while迴圈解 4+2+...+(-48)+(-50)=?
int i=4,sum=0;
while(i>=-50){
sum+=i;
i-=2;
}int k=1,g=1;
for(int i=1 ; i<=5 ; i++ ){
for(int j=1 ; j<=5 ; j++ ){
k+=i*j;
}
g+=k;
}1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 試著輸出這種99乘法表?
i++/++i
試試看差在哪裡?
int i=1;
cout<<i++<<' ';
cout<<i<<'\n';int i=1;
cout<<++i<<' ';
cout<<i<<'\n';1 2
2 2
練習!
現有很多位同學,請找出最高分的是第幾位同學?
那麼最低分是第幾位同學?
輸入
(直到輸入為END才停止,至少有1位同學):
87
59
66
76
48
89
55
48
66
74
END輸出:
89練習!
#include <iostream>
using namespace std;
int main(){
int t,a0,a1,a2,a3,a4;
while (cin >> t){
while (t>=1){
cin >> a0 >> a1 >> a2 >> a3;
if ((a1-a0) == (a2-a1)){
a4=a3+a3-a2;
}
else {
a4=a3*(a3/a2);
}
cout << a0 <<" "<< a1 <<" "<< a2 <<" "<< a3 <<" "<< a4 <<endl;
t-=1;
}
}
}t--
迴圈
By CHEN, SIAO SYUAN
迴圈
- 106