Perl/순환문 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: Perl/순환문 는 읽기 전용 페이지입니다.
== # for 순환문 == {{{#!vim perl for (초기화; 조건; 명령 후 취할 행동) { 명령; } }}} 또는 {{{#!vim perl for ( 1..100 ) { 명령; } }}} 변수가 생략된 경우 {{{#!vim perl for ( 1..10, " hello ", "world ", "again\n" ) { # 13 개의 값이 $_ 에 각각 할당 print; # $_ 가 생략된 것으로 간주 } }}} == # foreach 순환문 == (for 로도 동일하게 쓸 수 있음. for each ... 라는 의미를 좀 더 명확히 드러낸 뿐) {{{#!vim perl foreach $elem ( 0..$#myArray ) { print $myArray[$elem]; } foreach ( 0..$#myArray ) { print $myArray[$_]; # iterator 생략한 경우 $_ } foreach $aLine (
) { print $aLine; } }}} foreach 뒤에 있는 제어변수는 리스트의 요소의 alias이다. 그 변수의 값을 바꾸면 리스트의 원소가 바뀐다. 또한 제어변수는 foreach 루프 내에서 렉시컬 스코프가 적용되며 루프를 빠져나간 후의 그 변수의 값은 루프 전의 값이 됨에 유의
== # while 순환문 == {{{#!vim perl while ( 조건 ) { 명령; # 조건이 참인 동안 실행 } do { 명령; # 반드시 한 번은 실행 } while ( 조건 ); }}} == # until 순환문 == {{{#!vim perl until ( 조건 ) { 명령; # 조건이 거짓인 동안 실행 } do { 명령; # 반드시 한 번은 실행 } until ( 조건 ); }}} == # 순환문 빠져나가기 - next, last, redo == * next - C 의 continue * last - C 의 break * redo - next 와 유사하나, "블럭 실행 후 취할 행동" 부분을 실행하지 않는다 == # do { BLOCK } == * do { BLOCK } 형태는 블럭 안의 명령들 중 마지막 명령의 값을 반환함
* do { BLOCK } while ( 조건 ) * do { BLOCK } until ( 조건 ) * 위 두 가지는 BLOCK 을 한 번 실행한 후, 조건에 따라 반복을 할 것인지 결정한다. * 그런데... 이 형태는 whlie이나 until과 달리 루프로 간주되지 않아서 next,last,redo를 쓸 수 없다.
** do 블록 안 또는 밖에 추가로 블록을 구성해서 next와 last의 효과를 낼 수 있다.
{{{#!vim perl # next 를 하기 위해서는 중괄호를 이중으로 써서 안쪽에 블록 하나를 다시 만든다. do {{ next if $x == $y; # do something here }} until $x++ > $z; # last 를 하기 위해서는 바깥쪽에 블록을 만든다. LOOP: { do { last if $x = $y**2; # do something here } while $x++ <= $z; } }}} ---- [[컴퓨터분류]]
Perl/순환문
페이지로 돌아가기 |
다른 수정본 보기