Arvin Liu
在程式上的小小提醒點。
#include <stdio.h>
int main(){
/* do somthing */
Hi_This_is_Label_1:
/* do something else */
}
宣告
#include <stdio.h>
int main(){
/* do somthing */
Hi_This_is_Label_1:
/* do something else */
}
宣告
#include <stdio.h>
int main(){
/* do somthing */
Hi_This_is_Label_1:
/* do something else */
goto Hi_This_is_Label_1;
}
無窮迴圈
#include <iostream>
using namespace std;
int main(){
OAO:
cout << "Hi" << endl;
/*
DO SOMETHING
*/
goto OAO;
}
請將 /*DO SOMETHING*/ 處加code,
讓Loop跳出。
計數器
#include <iostream>
using namespace std;
int main(){
int i=0;
OAO:
i++;
cout << i << endl;
if(/* Condition */){
goto OAO;
}
}
請將 /*Condition*/ 補完,讓程式從0輸出到100。
除非你很有想法....
就是個迴圈。
什麼事情也沒有,
繼續你一天的生活。
你媽會叫你再去掃一次。
你媽叫你動作去打掃。
打掃要做還是不做?
你媽檢查房子,看是要叫你重掃還是滿足了。
宣告
做事
檢查
做事
檢查
宣告
Sweep:
// do something
if(house_is_not_clean){
goto Sweep;
}
label: // 宣告這一件事情
// do something
if (條件)
goto label;
label: // 宣告這一件事情
// do something
if (條件)
goto label;
do{ // 宣告這一件事情
// do something
}while(條件);
#include <iostream>
using namespace std;
int main(){
int i=0;
OAO:
i++;
cout << i << endl;
if(i < 100){
goto OAO;
}
}
#include <iostream>
using namespace std;
int main(){
int i=0;
do{
i++;
cout << i << endl;
}while(i < 100);
}
goto
do-while
int main(){
int sum=0, i=0;
do{
i++;
sum += i;
}while(i < 100);
cout << sum << endl;
}
一直輸入數字,當所有輸入的數字加總=0時,結束程式整個程式。
1
2
3
-3
-4
1
/*YOU CANNOT TYPE ANYMORE*/
你媽叫你動作去打掃。
打掃要做還是不做?
你媽檢查房子,看是要叫你重掃還是滿足了。
宣告
做事
檢查
????
????????????
你媽檢查房子,
髒了叫你去打掃。
打掃要做還是不做?
回去重新檢查就好。
宣告/檢查
做事
回溯
while(house_is_not_clean){
// Do something;
}
宣告/檢查
做事
回溯
while(條件){
// do somthing
}
如果不符合條件
宣告/檢查
做事
回溯
int sum=0, i=1;
while(i<=100){
sum += i;
i++;
}
cout << sum << endl;
int sum=0, i=1;
while(i<=100){
sum += i;
i++;
}
cout << sum << endl;
for(初始狀態;條件;累進運算){
// do somthing
}
int i=1
;i<=100
;i+=1
int sum=0, i=1;
while(i<=100){
sum += i;
i++;
}
cout << sum << endl;
int sum=0;
for(int i=1;i<=100;i+=1){
sum += i;
}
累加運算放後面!
int sum=0, i=1;
while(i<=100){
sum += i;
i+=1;
}
cout << sum << endl;
for(初始狀態;條件;累進運算){
// do something
}
如果不符合條件
int i=0
i<=10000
i+=1
;
;
第二段(條件)省略時,預設值是永遠都是True。
while(1){}
for(;;){}
i=i+1; 和 i++; 接近一樣,所以for迴圈通常會像下面這樣
for(int i=0; i<n; i++){}
讓你需要在還沒完成迴圈的時候結束迴圈?
int no_fire = true;
while(house_is_not_clean && no_fire){
// Do something
if(on_fire){
no_fire = false;
}
}
while(house_is_not_clean && no_fire){
// Do something
if(on_fire){
break;
}
}
for(int i=1; i<10; i++){
cout << "start " << i << endl;
if(i%3==0){
continue;
}
cout << "end " << i << endl;
}
for(int i=1; i<10; i++){
cout << "start " << i << endl;
if(i%3==0){
break;
}
cout << "end " << i << endl;
}
start 1
end 1
start 2
end 2
start 3
start 1
end 1
start 2
end 2
start 3
start 4
end 4
start 5
end 5
start 6
start 7
end 7
start 8
end 8
start 9
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
int hp_a, hp_b, hp_c, hp_d, hp_e;
int hp_f, hp_g, hp_h, hp_i, hp_j;
...
// 有最多10隻怪物。
int monster_hp[10];
// 你可以用變數monster_hp[0]~monster_hp[9]
monster_hp[1] = 10;
monster_hp[1]++;
就跟一般的變數一樣。
// 有10隻怪物。
int monster_hp[10];
(0, 0) | (0, 1) | (0, 2) |
---|---|---|
(1, 0) | (1, 1) | (1, 2) |
(2, 0) | (2, 1) | (2, 2) |
// 現在有3x3的地圖。
int table[3][3];
// 你可以用變數
// table[0][0]~table[3][3]
table[1][1] = 2;
table[1][1] = table[0][0]+1;
還是跟一般的變數一樣。