본문 바로가기
에밀리쌤의 기초교실/JAVA 프로그래밍

[에밀리쌤의 JAVA 기초] 조건문과 반복문(1)

by 에밀리쌤 2024. 4. 30.

자바교육에서 사용되는 자바 기초 프로그래밍의 교안을 바탕으로 한 추가 설명입니다.

이전에 여러 가지 연산자(2)에 이어 조건문과 반복문을 진행합니다.

 

 

[에밀리쌤의 JAVA 기초] 여러가지 연산자(2)

자바교육에서 사용되는 자바 기초 프로그래밍의 교안을 바탕으로 한 추가 설명입니다.이전에 여러 가지 연산자(1)에 이어 연산자를 추가로 더 설명합니다. [에밀리쌤의 JAVA 기초] 여러가지 연산

classroom.emilylecture.com

 

프로그래밍할 때 가장 기본이 되는 조건문과 반복문입니다. 

이 두 가지가 프로그래밍의 전부라고 해도 과언이 아니랍니다!

그래서 연습도 많이 하고 반드시 숙지하고 있어야 하는 조건문과 반복문에 대해 설명하도록 하겠습니다.

 

 

먼저 if문 입니다. 만약에~라는 조건을 주기 위한 시작입니다.

그 조건이 참이면 바로 다음 라인으로 넘어가 실행하도록 합니다.

앞에 연산자에서 살짝 if를 살펴봤었는데요. 연산자를 활용하는 문법입니다.

if와 비교, 논리 연산자를 잘 조합해서 프로그래밍하게 됩니다.

연산자 결과에 따라 실행되어야 하는 명령들을 프로그래밍 합니다. 

 

 

if문만 사용할 수도 있지만, 때에 따라서 그 조건의 결과가 거짓인 경우 처리해줘야 하는 경우도 생깁니다.

이때 가장 많이 사용하는 if ~ else ~ 입니다.

 

프로그래밍을 할 때 만약이라는 조건을 사용해야 한다면, 바로 코드로 구현하는 것보다, 교안에 있는 예시처럼 그림을 그려 흐름을 먼저 정리하는 것을 권장합니다. 

머릿속에 생각한 코드를 바로 옮기는 것보다 프로그래밍으로 구현하기 위한 것을 그림으로 먼저 흐름을 정의하는 거죠.

정해져 있는 방법이나 루틴이 있다기보다는 먼저 정리를 하면서 코드를 짜기 전 놓치거나 빠뜨릴 수 있는 부분이 없도록 하기 위해 사전 단계라고 생각하시면 될 것 같아요.

프로그램을 구현하기 위해 필요한 습관 중에 하나입니다.

 

저도 처음에 정리 안 하고, 기획안 문서를 보고 바로 코드로 작성하는 습관이 있었답니다. 그랬더니 실수도 많이 하지만, 프로그램 흐름상 취해줘야 하는 것들을 빠뜨리는 것도 많았답니다. 그래서 코드로 바로 작성하는 습관보다는 가급적 펜을 들고 프로그램의 흐름을 체크하고 빠뜨린 부분은 없는지 체크하는 습관을 가지기 시작했었답니다. (팀장님이 너무 급하게 코드 짠다고, 천천히 생각하고 코드로 구현하라고 하시기도 했었어요. 그러니 자꾸 실수가 나온다고.)

 

 

나쁜 습관은 모두 가지고 있는 개발자였네요 저. 😅

다들 개발 시작하면서 저와 같지 않게 좋은 습관부터 쌓아가시길 바라는 마음에 계속 잔소리(?) 해 봅니다.

 

 

조건문은 if ~ else ~ 에서 끝나지 않습니다! 

if ~ else if ~ else로 좀 세밀하게 조건을 나누어 구현할 수 있습니다. 그래서 가장 많이 사용하는 예제가 학점 구하는 예제인데요, 그래서 교안에서도 예시로 학점을 계산하고 있습니다. 평균 90점 이상이면 A학점을 평균 80점 이상이면 B학점을 그렇지 않으면 F학점을 부여하는 예제입니다.

이 예제는 A와 B 그리고 F만 있네요. 점수폭이 너무 좁다 느껴지신다면 조금 더 디테일하게 수정해 볼까요?

 

 

평균점수 95.5점이 있다면 이 점수는 학점이 어떻게 될까요? 이전보다 좀 더 세밀하게 C와 D로도 학점을 구분할 수 있는 사항을 추가하였습니다. 흐름을 정리해 놓고 코드로 옮기는 게 좋겠죠?

 

if ~ else if ~ else를 이용해서 조건을 세밀히 나눕니다.

교안의 코드를 말로 풀어보면, 

만약에 average가 90점 이상이면 grade는 A로 할당하고, 그게 아니라 만약에 average가 80점 이상이면 grade는 B로 할당하고, 그게 아니라 만약에 average가 70점 이상이면 grade는 C로 할당하고, 또 그게 아니라 만약에 average가 60점 이상이면 grade는 D로 할당하는데, 이 모든 조건에 포함되지 않는 경우에는 grade를 F로 할당한다. 

 

라고 표현할 수 있습니다.

 

average에 할당된 값이 95.5로 되어 있으니, 해당 조건문에 따라 grade에는 어떤 값이 할당되었을까요? 🤓

 

 

else if를 쓰지 않고 그냥 if문으로만 작성하면 안 되나요?라고 생각하셨다면 이번 교안의 코드를 한 번 비교해 보죠.

왼쪽의 코드는 앞에서 살펴본 코드입니다. 오른쪽의 코드를 읽어보죠.

 

만약 average가 90점 이상이면  grade에 A를 할당합니다. 만약 average가 80점 이상이면 grade에 B를 할당합니다. 만약 average가 70점 이상이면 grade에 C를 할당합니다. 만약 average가 60점 이상이면 D를 할당하고 그렇지 않다면 grade에 F를 할당합니다.

 

average가 95.5점이니 이 조건문의  grade는 어떤 값이 최종적으로 할당되어 있을까요?

 

if ~ else if ~ else 구문은 모두 하나의 문장입니다. 그래서, 조건이 하나라도 만족하면 해당하는 구문 밖으로 나가게 됩니다. 하지만, if문은 각기 독립적인 구문이기 때문에, 하나의 if 문이 끝나면 그다음 if문을 실행하고, 그 if문이 끝나면 또 그 다음 if문을 실행하게 됩니다.

비슷한 듯 하지만, 전혀 다른 프로그램의 흐름이 이루어진 다는 것을 확인하실 수 있습니다.

 

 

if문에서 비교연산자와 논리연산자를 사용하여 조건을 부여하고 그 결과가 참이냐 거짓이냐에 따라 코드의 흐름을 결정하게 됩니다. 필요에 따라 여러 조건의 결과를 확인하고 코드를 구현할 수 있습니다.

교안의 예시처럼 지금까지 평균 90점 이상이라는 조건 외에 지각이나 결석이 한 번도 없었다는 조건도 추가하여 두 가지를 모두 만족하면 그때 A학점을 주겠다는 것을 코드로 표현할 수 있게 됩니다.

 

조건문에 if문만 있는 것은 아닙니다! 앞서 비교나 논리연산 결과에 따라 if문 사용을 살펴봤는데요, 조건식의 비교값이 정수나 문자열로 정확히 딱 떨어지는 경우에 if문 대신 swich ~ case문을 이용할 수 있습니다.

그런 경우 if문을 사용하면 틀린 걸까요? 그렇지 않습니다! 

프로그래밍의 다양한 문법 활용 방법이라고 생각하시면 될 것 같습니다. 

만약 저는 헷갈리니 그냥 if문만 기억했다가 쓸래요!라고 하셔도 괜찮습니다!

정확히 구분에서 A경우는 if문, B의 경우는 switch문으로 사용하지는 않는답니다.

 


 

프로그래밍을 위해 다양한 코드 구현 규칙에 대해 살펴보고 있습니다. 

그 첫번째로 어떤 언어를 배운다고 해도 공통으로 등장하는 if문을 살펴보고 하나 둘 펼쳐서 더 살펴보았습니다.

이제 본격적인 프로그래밍을 위한 준비를 하고 있다고 생각하셔도 될 것 같습니다.

교안 속 예제들이 눈으로 보았을 때 이해가 잘 되시나요? 결과가 예상되지만, 중요한 건 꼭 에디터로 실제 프로그래밍 해봐야 한다는 것 잊지 마시기 바랍니다!

 

 

 

다음 번에는 조건문에 이어서 반복문을 이야기해보도록 하겠습니다.

 

 

[에밀리쌤의 JAVA 기초] 조건문과 반복문(2)

자바교육에서 사용되는 자바 기초 프로그래밍의 교안을 바탕으로 한 추가 설명입니다.이전에 조건문과 반복문(1)에 이어 조건문과 반복문(2)를 진행합니다.  [에밀리쌤의 JAVA 기초] 조건문과 반

classroom.emilylecture.com

 

 

반응형

댓글