.. index:: 
	single: 制御構造 - 第二形式; はじめに

===================
制御構造 - 第二形式
===================

第二形式による制御構造の用法を学びます。

.. index:: 
	pair: 制御構造 - 第二形式; 分岐処理


分岐処理
========

.. index:: 
	pair: 制御構造 - 第二形式; If ステートメント

* If ステートメント

文法:

.. code-block:: ring

	if 式
		ステートメント・ブロック
	elseif 式
		ステートメント・ブロック
	else
		ステートメント・ブロック
	end

用例:

.. code-block:: ring

	put " 
		Main Menu
		---------
		(1) Say Hello
		(2) About
		(3) Exit

	    " get nOption

	if nOption = 1	put "Enter your name : " get name put "Hello " + name + nl
	elseif nOption = 2 put "Sample : using if statement" + nl
	elseif nOption = 3 bye
	else put "bad option..." + nl
	end

.. index:: 
	pair: 制御構造 - 第二形式; Switch ステートメント

* Switch ステートメント

文法:

.. code-block:: ring

	switch 式
	case 式
		ステートメント・ブロック
	else
		ステートメント・ブロック
	end		

用例:

.. code-block:: ring

	Put " 
		Main Menu
		---------
		(1) Say Hello
		(2) About
		(3) Exit

	    " Get nOption

	Switch nOption
	Case 1 Put "Enter your name : " Get name Put "Hello " + name + nl
	Case 2 Put "Sample : using switch statement" + nl
	Case 3 Bye
	Else Put "bad option..." + nl
	End

.. index:: 
	pair: 制御構造 - 第二形式; ループ処理

ループ処理
==========

* While ループ

文法:

.. code-block:: ring

	while 式
		ステートメント・ブロック
	end


用例:

.. code-block:: ring

	While True

		Put " 
			Main Menu
			---------
			(1) Say Hello
			(2) About
			(3) Exit

		    " Get nOption

		Switch nOption
		Case 1 
			Put "Enter your name : " 
			Get name 
			Put "Hello " + name + nl
		Case 2 
			Put "Sample : using while loop" + nl
		Case 3 
			Bye
		Else 
			Put "bad option..." + nl
		End
	End
.. index:: 
	pair: 制御構造 - 第二形式; For ループ


* For ループ

文法:

.. code-block:: ring

	for 識別子=式 to 式 [step 式]
		ステートメント・ブロック
	end

用例:

.. code-block:: ring

	# 1 ～ 10 までの数値を表示します。
	for x = 1 to 10	 put x + nl  end

用例:

.. code-block:: ring

	# 動的ループ
	Put "Start : " get nStart       
	Put "End   : " get nEnd
	Put "Step  : " get nStep
	For x = nStart to nEnd Step nStep
		Put x + nl
	End

用例:

.. code-block:: ring

	# 0 ～ 10 までの偶数値を表示します。
	for x = 0 to 10 step 2
		Put x + nl
	end

用例:

.. code-block:: ring

	# 10 ～ 0 までの偶数値を表示します。
	for x = 10 to 0 step -2
		put x + nl
	end


.. index:: 
	pair: 制御構造 - 第二形式; For in ループ

* For in ループ

文法:

.. code-block:: ring

	for 識別子 in リストまたは文字列  [step 式]
		ステートメント・ブロック
	end

用例:

.. code-block:: ring

	aList = 1:10	# 1 ～ 10 までの数値を有するリストを作成します。
	for x in aList  put x + nl  end	# 1 ～ 10 までの数値を表示します。

.. index:: 
	pair: 制御構造 - 第二形式; 例外処理

例外処理
========

.. code-block:: ring

	try
		ステートメント・ブロック
	catch
		ステートメント・ブロック
	end

