안녕하세요.
해당 표는 코드에 값을 직접 입력하여 계산할 경우 각각의 변수가 어떻게 변화되는지를 보여주는 표입니다. 직접 코드에 값을 입력해 보겠습니다.
sum= 0 : sum에 0을 넣습니다.
for i=1 to 20 : i가 1에서 20이 될때까지 for~next 부분을 반복합니다. 첫번째 실행하므로 현재 i는 1입니다.
select case (i Mod 4) : i를 4로 나눈 나머지를 이용하여 case문을 수행합니다. 현재 i는 1로, 1을 4로 나눈 나머지는 1입니다.
case 0 : 나머지가 0일 경우 다음 문장을 실행합니다.
sum= sum+i
case 1, 2, 3 : 나머지가 1, 2, 3인 경우 아무것도 실행하지 않고 end select를 만나 select문을 끝냅니다.현재 나머지가 1이므로 다음으로 이동합니다.
next : 다시 for문으로 이용합니다.
for i=1 to 20 : 다시 for 문을 만났으므로 i가 2가 됩니다.
select case (i Mod 4) : 현재 i가 2이므로, 2를 4로 나눈 나머지는 2입니다.
case 0
sum= sum+i
case 1, 2, 3 : 나머지가 2이므로 for문으로 이동합니다.
for i=1 to 20 : 다시 for 문을 만났으므로 i가 3이 됩니다.
select case (i Mod 4) : 현재 i가 3이므로, 3을 4로 나눈 나머지는 3입니다.
case 0
sum= sum+i
case 1, 2, 3 : 나머지가 3이므로 for문으로 이동합니다.
for i=1 to 20 : 다시 for 문을 만났으므로 i가 4가 됩니다.
select case (i Mod 4) : 현재 i가 4이므로, 4를 4로 나눈 나머지는 0입니다.
case 0 나머지가 1이므로 다음 문장을 실행합니다.
sum= sum+i : sum은 맨 앞에 0을 넣었으므로 0이고, i는 현재 4이므로 0+4=4를 sum에 저장합니다.
case 1, 2, 3
next : 다시 for문으로 이동합니다.
for i=1 to 20 : 다시 for 문을 만났으므로 i가 5가 됩니다.
select case (i Mod 4) : 현재 i가 5이므로, 5를 4로 나눈 나머지는 1입니다.
case 0
sum= sum+i
case 1, 2, 3 : 나머지가 1이므로 for문으로 이동합니다.
~~
이런식으로 if가 20이 될때까지 실행을 하면, sum 값이 처음에는 4이고, sum=sum+i는 기존에 들어 있는 sum에 i를 더해 다시 sum에 저장하라는 의미로 4+8=12를 sum에 저장하면 sum은 12가 됩니다. 다시 sum에 들어 있는 12에 16를 더해 그 값을 sum에 저장하는 것입니다. 이런식으로 하면 각 코드를 실행하면서 sum 값을 누적했으므로 가장 마지막에 sum을 더할 필요가 없는 것입니다. 즉, 가장 마지막 값이 sum 값을 모두 더한 값입니다.
즐거운 하루 되세요.
-
*2018-05-31 10:04:13
안녕하세요.
해당 표는 코드에 값을 직접 입력하여 계산할 경우 각각의 변수가 어떻게 변화되는지를 보여주는 표입니다. 직접 코드에 값을 입력해 보겠습니다.
sum= 0 : sum에 0을 넣습니다.
for i=1 to 20 : i가 1에서 20이 될때까지 for~next 부분을 반복합니다. 첫번째 실행하므로 현재 i는 1입니다.
select case (i Mod 4) : i를 4로 나눈 나머지를 이용하여 case문을 수행합니다. 현재 i는 1로, 1을 4로 나눈 나머지는 1입니다.
case 0 : 나머지가 0일 경우 다음 문장을 실행합니다.
sum= sum+i
case 1, 2, 3 : 나머지가 1, 2, 3인 경우 아무것도 실행하지 않고 end select를 만나 select문을 끝냅니다.현재 나머지가 1이므로 다음으로 이동합니다.
next : 다시 for문으로 이용합니다.
for i=1 to 20 : 다시 for 문을 만났으므로 i가 2가 됩니다.
select case (i Mod 4) : 현재 i가 2이므로, 2를 4로 나눈 나머지는 2입니다.
case 0
sum= sum+i
case 1, 2, 3 : 나머지가 2이므로 for문으로 이동합니다.
for i=1 to 20 : 다시 for 문을 만났으므로 i가 3이 됩니다.
select case (i Mod 4) : 현재 i가 3이므로, 3을 4로 나눈 나머지는 3입니다.
case 0
sum= sum+i
case 1, 2, 3 : 나머지가 3이므로 for문으로 이동합니다.
for i=1 to 20 : 다시 for 문을 만났으므로 i가 4가 됩니다.
select case (i Mod 4) : 현재 i가 4이므로, 4를 4로 나눈 나머지는 0입니다.
case 0 나머지가 1이므로 다음 문장을 실행합니다.
sum= sum+i : sum은 맨 앞에 0을 넣었으므로 0이고, i는 현재 4이므로 0+4=4를 sum에 저장합니다.
case 1, 2, 3
next : 다시 for문으로 이동합니다.
for i=1 to 20 : 다시 for 문을 만났으므로 i가 5가 됩니다.
select case (i Mod 4) : 현재 i가 5이므로, 5를 4로 나눈 나머지는 1입니다.
case 0
sum= sum+i
case 1, 2, 3 : 나머지가 1이므로 for문으로 이동합니다.
~~
이런식으로 if가 20이 될때까지 실행을 하면, sum 값이 처음에는 4이고, sum=sum+i는 기존에 들어 있는 sum에 i를 더해 다시 sum에 저장하라는 의미로 4+8=12를 sum에 저장하면 sum은 12가 됩니다. 다시 sum에 들어 있는 12에 16를 더해 그 값을 sum에 저장하는 것입니다. 이런식으로 하면 각 코드를 실행하면서 sum 값을 누적했으므로 가장 마지막에 sum을 더할 필요가 없는 것입니다. 즉, 가장 마지막 값이 sum 값을 모두 더한 값입니다.
즐거운 하루 되세요.