위에꺼에서는 else가 if가 false 일떄 else가 출력됐는데
아래꺼에서는 둘다 출력되는데 뭐때문인거야??
위에꺼에 중간에 섞여있는 중괄호떄문에 다른건가???
추가-----------------------------------------------------
다들 답변고마워 이거 맨따에 해딩하면서 하는데 쉽지않네...
위에꺼에서는 else가 if가 false 일떄 else가 출력됐는데
아래꺼에서는 둘다 출력되는데 뭐때문인거야??
위에꺼에 중간에 섞여있는 중괄호떄문에 다른건가???
추가-----------------------------------------------------
다들 답변고마워 이거 맨따에 해딩하면서 하는데 쉽지않네...
while문이 뭔지 알음?
while을 무슨 의도로 사용했는지 생각해봐
지금 영상보면서 하는거에서는 while이 조건이 true일때 로직이 반복해서 실행한다고 알려줘서 밑에 사진보면 health가 0보다 높다는 조건이 true니까 밑에 조건인 health--라는 로직이 반복 실행되는거고 그리고 if라는 health가 0보다 크면 독 데미지를 입었습니다하고 뒤에 남은 health 수치가 뜨는거고 이제 여기서 의문인게 위에 알려주는대로 위에 사진에서는 if condition이 나쁨이 ture일떄 아래 아이템 사용하라는 메세지가 출력이되는거고 if가 false일때 else 가 출렸되는거 확인했었는데 이번엔 저거 아래사진대로 하니까 위에 처음에 적은거 대로 했을때는 if가 true라서 그게 메세지가 출력이됐는데 밑에있는 else는 if가 felse이 아닌데도 마지막에 출력이되는게
왜그런가해서
마지막은 health가 0이 될테니깐 health>0 조건이 false가 되지
아 그런 원리구나 바로 이해했어 출력하는동안에도 fales가 되면 else가 출력이되는거구나
health--가 반복실행되면 어케되겠음 언젠간 health가 0이 되겠지
if else 는 한번 if가적용되서 지나가면 if문은 끝인줄알았어 - dc App
고마워! - dc App
아니? if문 한번 적용되면 끝 맞음. 근데 왜 else에 도달할까.. 한줄 한줄 생각을 해봐
그럼 혹시 내가 본문에 적은거처럼 위에는 if랑 eles사이에 중괄호가있고 밑에는 없는데 이건 상관없는거야??
ㅇㅇ 그건 아무 상관 없음.
health가 1인 상태로 가정한다면 1. if문 진입 성공, 독데미지 프린트 하고 else는 무시. 2. while문 끝에 도달하고 다시 while문 처음으로 돌아감. 3. health-- 로 health가 0이됨 3. if가 false니까 if무시하고 else로 진입함. 사망 프린트. 4. while문 끝에 도달하고 처음으로 돌아가지만 while문 조건으로 인해 루프 종료
아 그러니까 while이게 단순하게 로직만 반복하는게아니라 while안에있는걸 시작부터 끝까지 계속 반복하는거구나
이거는 그냥 손으로 그리면서 직접따라가보는게 본인한테 제일 도움될거임.
이렇게 하면 health-1번 동안 독대미지 출력하고 사망하였습니다 한 번 출력하지 않아? health가 5면 독 대미지를 입었습니다. 4, 독 대미지를 입었습니다. 3, ..., 독 대미지를 입었습니다. 1, 사망하였습니다. 이렇게 나오는 거면 둘 다 출력되는 게 아니야 코드를 한줄 한줄 읽어보는 걸 추천할게
else에는 break를 걸던지 해서 일단 while문부터 빠져나와야지.. - dc App
health가 0이되는 순간 사망하셨습니다가 찍히고 while을 빠져 나가는 것임
while(--health){ ... }를 추천드립니다. health가 0 이 되면 바로 while문을 탈출합니다
그리고 while(--health){...}문과 while(health--){...}문의 이해도를 높여보세요 전위연산과 후위연산의 차이라고 검색하시면 나올거에요
넵!
c#은 조건검사문에 int형안드가요. 그리고 c++이라도 개인적으론 위험한 코드라고 생각함
ㅋㅋ 뉴비 커엽노 - dc App
아씨 나 .net 10년차 넘는데 순간 헷갈렸자나