格式


循环名称:loop

	if 退出条件 then 
		leave 循环名称;
	end if;

	if 跳过条件 then
		处理循环变量
		iterate 循环名称;
	end if;
end loop 循环名称;

示例1 求总和

image.png

示例2 求偶数和

DELIMITER !

CREATE PROCEDURE loop_test3(IN num INT)
BEGIN
	DECLARE result INT DEFAULT 0;
	DECLARE counter INT DEFAULT 1;
	
	dog:LOOP
		IF counter > num THEN
			LEAVE dog;
		END IF;
		
		-- 如果counter是奇数,就不要再往后走
		IF counter % 2 = 1 THEN
			SET counter = counter + 1;
			ITERATE dog;
		END IF;
		
		SET result = result + counter;
		SET counter = counter + 1;
	END LOOP dog;
	
	SELECT result;

END !

历史 20240911_102528

image.png

image.png

image.png

image.png