<1>

DROP PROCEDURE IF EXISTS whileProc;
DELIMITER $$
CREATE PROCEDURE whileProc()
BEGIN
DECLARE i INT;
    DECLARE hap INT;
    SET i = 1;                                       i는 1부터 시작
    SET hap = 0;                                 hap은 0부터 시작
    
    WHILE (i <= 100) DO                      i가 100보다 작거나 같으면, 그동안 계속 실행
        SET hap = hap + i;
        SET i = i + 1;
END WHILE;
    
    SELECT '1부터 100까지의 합 ==>', hap;
END $$
DELIMITER ;
CALL whileProc();

 

 

 

 

<2>

DROP PROCEDURE IF EXISTS whileProc2;
DELIMITER $$
CREATE PROCEDURE whileProc2()
BEGIN
DECLARE i INT;
    DECLARE hap INT;
    SET i = 1;
    SET hap = 0;
    
    myWhile:
    WHILE (i <= 100) DO
IF (i%4 = 0) THEN 
SET i = i + 1;

ITERATE myWhile;

END IF;

(만약 i 나누기 4가 0이면,  i 에 1을 더하고   myWhile 처음으로 돌아가서 다시 실행 ----> 4의 배수는 빼고 더하겠다. )
SET hap = hap+i;
IF (hap>1000) THEN
LEAVE myWhile;

END IF;

(만약 hap이 1000을 넘으면 myWhile 그만 실행하고 종료하겠다.)
        SET i = i+1;
END WHILE;
    
    SELECT '1부터 100까지의 합(4의 배수 제외), 1000 넘으면 종료 ==>', hap, i;
END $$
DELIMITER ;
CALL whileProc2();

 

양의 정수를 4의 배수 제외하고 더하다보면 51까지 더했을 때 1014로, 처음 1000을 넘는다.

+ Recent posts