# [kr-dev] 반복적인 동작을 위한 whale? while! - Java(7) 오늘은 어제 작성한 포스팅 내용인 for문의 형제꼴 while을 준비해 보았습니다. 사실 for문은 while의 **부족한 단점을 보완**하기 위해 나온 명령어로 while이 for문보다도 먼저 나온 명령어라고 합니다. 그럼 바로 while문에 대해서 알아보도록 하겠습니다.  while의 형태와 사용법은 for문과 비슷합니다. **while(조건식) { 실행할 코드; }** 이며, for문과 마찬가지로 **외부의 변수**를 사용할 수 있습니다. 위 코드를 살펴보면 외부에 i라는 이름을 가진 변수를 선언해주었습니다. while은 외부에 선언된 i가 10보다 작을때까지 블록안의 코드를 실행하라는 의미입니다. 당연히 i가 10보다 작으므로 블록안의 내용이 실행되고 1.i에 증감식 ++을 이용하여 1을 증가 2.메세지 출력 의 단계를 10번 반복하게 되는 것입니다.  while문도 for문과 마찬가지로 **조건식이 true일때만** 블록안의 내용을 실행합니다. 그렇다면 조건식이 true일때는 어떨까요? 위의 사진처럼 무한 루프가 일어납니다. 조건식이 true일때 블록의 내용이 실행되는데 조건식이 계속 true이기 때문이지요 :)  하지만 지난번 switch/case에서 정리한 보조 제어문(break)를 이용하면 이렇게 빠져나올 수도 있습니다. 출력문 다음에 break를 수행하며 다시 조건식이 아닌 명령문 밖으로 나와버리기 때문입니다 :)  그럼 당연히 다른 보조 제어문인 continue도 적용이 가능하겠죠? 위의 사진을 보시면 if문의 조건식이 성립되어 continue가 실행되고 continue로 인하여 다음의 실행코드인 출력문이 실행되지 않고 다시 while문의 조건식으로 돌아가는 것을 보실 수 있습니다.  while문 이외에도 do~while이라는 제어문이 존재합니다. do의 내용을 선실행하고 while의 조건식이 충족되었을 때 다시 do의 내용으로 돌아가 코드를 실행시키는 방식이지요 사진을 보시면 do 블록안의 내용이 선 실행됩니다. 따라서 결과값으로 출력문이 1개 실행되고 i가 1증가하겠네요. 다음은 while의 조건식입니다. do~while문 밖에 정수형 i를 0으로 초기화해주었고 do 블록안의 내용으로 1이 증가되었지만 조건식 i<2를 충족합니다. 따라서, 다시 do로 돌아가 do블록안의 내용을 실행합니다. 다시 문장이 출력되고 i는 1이 증가되어 2가 되겠네요 :) 다시 while의 조건 판별이 일어납니다. 하지만 i<2를 충족하지 못하여 프로그램이 종료되버리네요 :( 오늘은 while과 do~while에 대해서 다뤄보았는데요 현업에서는 for문과 while, do~while을 상황에 따라 적절히 사용한다고 하는데 아직 저는 개발을 배우는 입장이라 적재적소하는 방법은 잘 모르겠네요 :) 현재까지는 반복 실행할 코드가 있다면 for를 선호해서 사용합니다. 물론 간단한 조건이면 while을 사용하고 있습니다. for와 while을 적절하게 섞어쓸 수 있을 때까지 개발은 계속됩니다 ! ~
author | code91 |
---|---|
permlink | kr-dev-whale-while-java-7 |
category | kr-dev |
json_metadata | {"community":"busy","app":"busy/2.4.0","format":"markdown","tags":["kr-dev","busy","jjangjjangman","jiwon34","code91-java"],"image":["https://steemitimages.com/0x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1521032741/qsqzyoyamy6h1h2nknnz.png","https://steemitimages.com/0x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1521033092/jknwkefpcj3xjdkjchtj.png","https://steemitimages.com/0x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1521033436/xyb8wwxwhzrfosqfl8hw.png","https://steemitimages.com/0x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1521033828/kycyz0ecrv5dzbfozmlb.png","https://steemitimages.com/0x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1521034266/tnhomvwqifbccgy5au5x.png"]} |
created | 2018-03-14 13:37:18 |
last_update | 2018-03-14 13:37:18 |
depth | 0 |
children | 0 |
last_payout | 2018-03-21 13:37:18 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 3.799 HBD |
curator_payout_value | 1.030 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 2,059 |
author_reputation | 2,686,108,920,793 |
root_title | "[kr-dev] 반복적인 동작을 위한 whale? while! - Java(7)" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 44,374,456 |
net_rshares | 1,528,849,412,471 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
ioc | 0 | 958,882,201,943 | 15% | ||
lovenfreedom | 0 | 9,897,618,241 | 100% | ||
dyuryul | 0 | 310,267,130,093 | 20% | ||
mynaturebody | 0 | 18,476,530,758 | 100% | ||
songa0906 | 0 | 29,820,581,896 | 50% | ||
code91 | 0 | 761,539,044 | 100% | ||
yellocat | 0 | 2,043,235,618 | 100% | ||
passive | 0 | 41,320,831,028 | 100% | ||
dugsu2 | 0 | 176,348,058 | 10% | ||
jinibh.house | 0 | 2,673,691,712 | 100% | ||
docsweettooth | 0 | 121,652,066,160 | 100% | ||
sightstep | 0 | 20,237,338,858 | 100% | ||
mrshev | 0 | 12,640,299,062 | 100% |