[출처] 윤ㅋ선생의 부천컴퓨터학원 (in 플래시채널)
http://blog.naver.com/mocun

23. 만약 ~ 라면 아니면~ (조건분기블록)

헬로스크래치 | 2016-03-04 14:22:49


안녕하세요 윤ㅋ선생입니다. 전에는 조건블록을 배워보았고 이번에는 조건분기블록을 배워보겠습니다.
만약에 조건이 참일 때와 거짓일 때를 일일히 이런식으로 쓰면 힘들 것입니다.

그래서 아니면~ 이라는 조건 블록을 쓰는 것이죠.



조건분기블록
 (해당 조건이 참과 거짓을 결정해줌)
조건블록만 썼을 경우
 (조건문에 넣는 조건은 같아야함)

그러면 어떻게 사용할 까요? 한번 따라해보겠습니다.


전에 작업했던 조건블록에 이어서
작업해보겠습니다

만약에 조건이 맞지 않으면 그냥 아무것도
나오지 않았지만 아닐 때 나오게 하려면
아니면을 사용합니다.


이런식으로... 

 바꿔넣을 수 있습니다. (새로 해도 됨)


아닐 때의 실행할 명령어블록을 넣어줍니다.


변수값을 조건과 틀리게 바꿔봅니다.


아닐 때의 경우가 나오게 됩니다.

음... 그러면 뭐하러 아니면을 사용하나요? 그 이유는 다음과 같은 경우를 보시면 이해하실 것입니다.



조건블록으로 2번 사용해서 조건을 두번 확인함
조건블록에 분기를 넣어서 조건을 한번만 확인함

그렇기 때문에 그냥 조건블록만 쓰기 보다는, 해당 조건이 거짓일 때의 실행하는 경우라면
저런식으로 두번 조건블록을 쓰기보다 거짓일 경우 아니면이 붙어있는 블록을 쓰는게 편합니다.

그러면 반드시 둘중 하나는 실행이 됩니다.

왜 어째서 두번하고 한번만 실행하는지 이해가 안가요~~ 그러면 다음을 봐주세요.



조건확인을 2번 합니다!
조건확인을 1번 합니다!

물론 여러분들이 조건블록만 사용해야 할지, 조건분기블록를 써야할지는 해당 변수가 다른지 같은지 (?)에 따라 다르겠죠.


또한 앞서서 여러분들이 거짓일때의 경우는 논리 부정으로 사용했지만, 아니면을 사용해도 됩니다.



조건문이 ~가 아니다로 논리부정이 됨
 (원래 거짓인데 부정이 되어서 참이 되었음)
해당 조건문에 참일 때는 아무것도 없고
 거짓일 때는 명령어를 넣음

둘은 어차피 같습니다!!

음... 뭐 어떻게 쓸 지는 여러분들 마음이라고 생각합니다.
근데 아니면을 어차피 쓸때는 참인 경우가 있으니까 쓰는게 아닐까요?? 
물론 단독으로 아니면만은 사용할 수 없습니다. (블록을 쪼갤 수 없으니...)


다음에는 아니면 만약에를 배워볼까요? 아니면 만약에는 앞의 조건문이 아닐때 만약에~ 이 조건이 맞으면이라는 것입니다.

그래서 분기를 할 수 있으며 그런경우에는 경우의 수가 3가지 이상이 된다면 참과 거짓으로만 충분하지 않기 때문에
조건블록안에 조건블록을 넣어야 하는 상황을 만들게 됩니다.


제가 말하는 경우는 다음과 같습니다.



아니면 만약 블록을 사용한 경우
그냥 만약블록을 연달아서 사용한 경우

이런식으로 아니면에 조건문(만약블록)이나 조건분기문(만약아니면블록)을 붙이는 것입니다.


전에 배웠던 조건분기블록을 보도록 하겠습니다.


아닐 때의 조건에 해당 조건블록을 넣어줍니다.
(또 분기가 있을 시
 만약~라면, 아니면 블록을 넣어주세요)


조건을 넣어주면 됩니다.


그 아닐 때의 조건이 참일 때의
 실행할 명령어를 넣어줍니다.


변수의 값을 한번 바꿔봅니다.


위에있는 조건이 아니고 해당조건이 맞으면
그 명령어가 실행이 됩니다.

이해하셨나요? 아니면만약에는 계속해서 쭉 붙일 수 있고요, 마지막에 아니면을 붙이지 않으면
모두 조건에 충족되지 않으면 아무것도 하지 않습니다.


이 예시는, 만약에 모든 조건이 맞지 않을 때는 아무것도 출력이 되지 않습니다.
그러면 당연히 마지막에 아니면이어야겠죠?



아니면 만약에 블록을 사용할 때
만약에만 사용할 때



100을 입력했을 때 잘 나옵니다.
 (해당 위에있는 조건이 참이라 밑의 경우는 지나감)
100을 입력했을 때 엉뚱한 결과가 나옵니다.
(밑에 있는 것도 참이기 때문에)

이렇기 때문에 해당 아니면 만약에를 쓰는 이유는 여러가지의 경우 앞에 있는 조건을 쭉 순서대로
대조하여 맞는 조건이면 그 안에 있는 명령어를 실행하고 빠져나갑니다.

잘 이해하셨나요? 다음에 뵈어요~~



댓글
등록된 댓글이 없습니다.