OSDN Git Service

04e755dddf02f1f74e97465f1e989525d02b2315
[ring-lang-081/ring.git] / docs / build / html / _sources / controlstructures3.txt
1 .. index:: 
2         single: 制御構造 - 第三形式; はじめに
3
4 ================================
5 制御構造 - 第三形式
6 ================================
7
8 第三形式による制御構造の用法を学びます。
9
10 .. index:: 
11         pair: 制御構造 - 第三形式; 分岐処理
12
13
14 分岐処理
15 ========
16
17 .. index:: 
18         pair: 制御構造 - 第三形式; If ステートメント
19
20 * If ステートメント
21
22 文法:
23
24 .. code-block:: ring
25
26         if 式 {
27                 ステートメント・ブロック
28         elseif 式
29                 ステートメント・ブロック
30         else
31                 ステートメント・ブロック
32         }
33
34 用例:
35
36 .. code-block:: ring
37
38         Load "stdlib.ring"
39
40         print(" 
41                 Main Menu
42                 ---------
43                 (1) Say Hello
44                 (2) About
45                 (3) Exit
46             ")
47
48         nOption = getnumber()
49
50         if nOption = 1  {
51                 print("Enter your name : ") 
52                 name = getstring()      
53                 print("Hello #{name}\n")
54         elseif nOption = 2 
55                 print("Sample : using if statement\n")
56         elseif nOption = 3 
57                 bye
58         else 
59                 print("bad option...\n")
60         }
61
62 .. index:: 
63         pair: 制御構造 - 第三形式; Switch ステートメント
64
65 * Switch ステートメント
66
67 文法:
68
69 .. code-block:: ring
70
71         switch 式 {
72         case 式
73                 ステートメント・ブロック
74         else
75                 ステートメント・ブロック
76         }       
77
78 用例:
79
80 .. code-block:: ring
81
82         Load "stdlib.ring"
83
84         print(" 
85                 Main Menu
86                 ---------
87                 (1) Say Hello
88                 (2) About
89                 (3) Exit
90
91               ")
92
93         nOption = GetString()
94
95         switch nOption {
96         case 1 
97                 print("Enter your name : ")
98                 name = getstring()
99                 print("Hello #{name}\n")
100         case 2 
101                 print("Sample : using switch statement\n")
102         case 3 
103                 Bye
104         else 
105                 print("bad option...\n")
106         }
107
108
109 .. index:: 
110         pair: 制御構造 - 第三形式; ループ処理
111
112 ループ処理
113 ==========
114
115 .. index:: 
116         pair: 制御構造 - 第三形式; While ループ
117
118 * While ループ
119
120 文法:
121
122 .. code-block:: ring
123
124         while 式 {
125                 ステートメント・ブロック
126         }
127
128 用例:
129
130 .. code-block:: ring
131
132         Load "stdlib.ring"
133
134         While True {
135
136                 print(" 
137                         Main Menu
138                         ---------
139                         (1) Say Hello
140                         (2) About
141                         (3) Exit
142
143                           ")
144
145                 nOption = GetString()
146
147                 switch nOption {
148                 case 1 
149                         print("Enter your name : ")
150                         name = getstring()
151                         print("Hello #{name}\n")
152                 case 2 
153                         print("Sample : using switch statement\n")
154                 case 3 
155                         Bye
156                 else 
157                         print("bad option...\n")
158                 }
159
160         }
161
162 .. index:: 
163         pair: 制御構造 - 第三形式; For ループ
164
165 * For ループ
166
167 文法:
168
169 .. code-block:: ring
170
171         for 識別子=式 to 式 [step 式] {
172                 ステートメント・ブロック
173         }
174
175 用例:
176
177 .. code-block:: ring
178
179         # 1 ~ 10 までの数値を表示します。
180         load "stdlib.ring"
181         for x = 1 to 10  { 
182                 print("#{x}\n") 
183         }
184
185 用例:
186
187 .. code-block:: ring
188
189         load "stdlib.ring"
190
191         # 動的ループ
192         print("Start : ") nStart = getnumber()
193         print("End   : ") nEnd = getnumber()
194         print("Step  : ") nStep = getnumber()
195         for x = nStart to nEnd step nStep {
196                 print("#{x}\n") 
197         }
198
199 用例:
200
201 .. code-block:: ring
202
203         load "stdlib.ring"
204
205         # 0 ~ 10 までの偶数値を表示します。
206         for x = 0 to 10 step 2 {
207                 print("#{x}\n") 
208         }
209
210 用例:
211
212 .. code-block:: ring
213
214         load "stdlib.ring"
215
216         # 10 ~ 0 までの偶数値を表示します。
217         for x = 10 to 0 step -2 {
218                 print("#{x}\n") 
219         }
220
221
222 .. index:: 
223         pair: 制御構造 - 第三形式; For In ループ
224
225 * For in ループ
226
227 文法:
228
229 .. code-block:: ring
230
231         for 識別子 in リストまたは文字列  [step 式] {
232                 ステートメント・ブロック
233         }
234
235 用例:
236
237 .. code-block:: ring
238
239         load "stdlib.ring"
240
241         aList = 1:10    # 1 ~ 10 までの数値を有するリストを作成します。
242         for x in aList { print("#{x}\n") }      # 1 ~ 10 までの数値を表示します。
243
244 用例:
245
246 .. code-block:: ring
247
248         load "stdlib.ring"
249
250         aList = 1:10    # 1 ~ 10 までの数値を有するリストを作成します。
251         # print リスト内にある奇数の項目を表示します。
252         for x in aList step 2 {
253                 print("#{x}\n") 
254         }
255
256 (For in) は項目を参照で取得します。
257
258 つまり、ループの内側で項目の読み取りと編集ができます。
259         
260 用例:
261
262 .. code-block:: ring
263
264         load "stdlib.ring"
265
266         aList = 1:5             # 1 ~ 5 までの数値を有するリストを作成します。
267         # リストの数値を文字列へ置換します。
268         for x in aList {
269                 switch x {
270                 case 1  x = "one"
271                 case 2  x = "two"
272                 case 3  x = "three"
273                 case 4  x = "four"
274                 case 5  x = "five"
275                 }
276         }
277         print(aList)    # リストの項目を表示します。
278
279
280 .. index:: 
281         pair: 制御構造 - 第三形式; 例外処理
282
283 例外処理
284 ========
285
286 .. code-block:: ring
287
288         try {
289                 ステートメント・ブロック
290         catch
291                 ステートメント・ブロック
292         }
293