ホームページ  >  記事  >  データベース  >  While、Loop、Repeat という 3 つのループ ステートメントの類似点と相違点は何ですか?

While、Loop、Repeat という 3 つのループ ステートメントの類似点と相違点は何ですか?

青灯夜游
青灯夜游オリジナル
2021-02-01 10:44:434843ブラウズ

同じ点: 単独では使用できません。主にストアド プロシージャと関数 FUNCTION で使用されます。違い: WHILE は最初に判断してから実行するため、条件が満たされた場合にのみ実行されます。 REPEAT と LOOP は最初に実行され、その後判定され、条件が満たされるとループが終了します。条件が false の場合、REPEAT も 1 回実行できますが、他の 2 つのステートメントは実行できません。

While、Loop、Repeat という 3 つのループ ステートメントの類似点と相違点は何ですか?

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

1. MySQL ループの概要

MySQL には WHILE、REPEAT、LOOP という 3 種類のループがあります ( goto) もあります。これは単独では使用できません。主にストアド プロシージャ PROCEDURE および関数 FUNCTION で使用されます。

2. WHILE ループ

1. 構文: WHILE condition DO doSomething END WHILE ;

2. 説明: 条件条件が満たされた場合はループ本体の内容が実行され、満たされなかった場合はループが終了します。 (例: 2>1、満足、1--まず判断してから実行します。

3. 例: while ループ ストアド プロシージャ pro_while

DROP PROCEDURE IF EXISTS pro_while ;
CREATE PROCEDURE pro_while()
BEGIN
	 DECLARE  sum INT DEFAULT 0 ;
	 WHILE sum < 100 DO
		INSERT INTO `chapter`.`batch` (`id`, `name`, `age`) 
		VALUES (CONCAT(sum,&#39;&#39;),CONCAT(&#39;while&#39;,sum) , sum);
		SET sum = sum + 1;
   	END WHILE ;
END;

4 を作成します。ストアド プロシージャを呼び出します: CALL pro_while ();

関連する推奨事項「mysql ビデオ チュートリアル

3. REPEAT ループ

1. 構文: REPEAT doSomething UNTIL condition END REPEAT ;

2. 説明: doSomething は、最初に関連する操作を実行し、次に条件が満たされるかどうかを判断します。それで、ループを終了します。 (WHILE ループとは逆) ---最初に実行し、後で判断します。

3. 例: 繰り返しループ関数の作成 fun_repeat

DROP FUNCTION IF EXISTS fun_repeat ;
CREATE FUNCTION fun_repeat() RETURNS INT
BEGIN
	DECLARE  sum INT DEFAULT 1000 ;
		REPEAT 
			INSERT INTO `chapter`.`batch` (`id`, `name`, `age`) 
			VALUES (CONCAT(sum,&#39;&#39;),CONCAT(&#39;repeat&#39;,sum) , sum);
			SET sum = sum + 1;	
		UNTIL sum > 1100 END REPEAT ; -- 满足条件结束循环
	RETURN 1;
END;

4. 実行関数: SELECT fun_repeat();

4. LOOP ループ

1. 構文:

loop_name : LOOP
    IF condition THEN
        LEAVE loop_name ;
    END IF;
    doSomething
END LOOP;

2. 説明:

  • loop_name はループ名です。カスタマイズされています。キーワードは使用できません。
    • 関連する操作を実行します。
    • 条件 条件が満たされると、ループが終了します。 --- まず判断し、それから実行します。

3. 例: ループ ループ ストアド プロシージャ pro_loop

DROP PROCEDURE IF EXISTS pro_loop ;
CREATE PROCEDURE pro_loop()
BEGIN
	DECLARE sum int DEFAULT 10000 ;
	loop_sums : LOOP -- 【开始】loop 名字,自定义
		IF sum > 10100 THEN
			LEAVE loop_sums ; -- 满足条件,则结束循环
		END IF; 
		INSERT INTO `chapter`.`batch` (`id`, `name`, `age`) 
		VALUES (CONCAT(sum,&#39;&#39;),CONCAT(&#39;loop&#39;,sum) , sum);
		SET sum = sum + 1;	
	END LOOP ;  -- 【结束】
END ;

4 を作成します。ストアド プロシージャを呼び出します: CALL pro_loop();

##5. 概要

1. ループ中に、最初に判断してから実行します。条件が満たされると実行され、ループが実行されます。

2. REPEAT ループ、

最初に実行してから判断します。 条件が満たされた場合、条件は実行されず、ループは終了します。

3. LOOP ループ、最初に実行してから判断します。条件が満たされた場合は実行されず、ループが終了します。

4. 条件が false の場合、Java の

do {} while (condition); ループと同様に、REPEAT ループを 1 回実行することもできます; while WHILE ループと LOOP ループ実行することはできません。

コンピューター プログラミングの詳細については、

プログラミング入門をご覧ください。 !

以上がWhile、Loop、Repeat という 3 つのループ ステートメントの類似点と相違点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。