Java 스터디 4일차

프로그래밍/Java

2018. 10. 17. 19:24

반응형

※이 글은 2018/08/05 ~ 2018/08/27일까지 했던 자바 스터디 노트를 올려놓은 겁니다. ※

04-1 조건문
조건문이란 주어진 조건에 따라 다른 문장을 선택할  있도록 프로그래밍 하는 .
 
If문과 if-else
if 우리말로 해석하면 '만약 ~이라면'입니다.
if문을 사용하는 형태를 간단히 나타내면 아래 코드와 같습니다.

if (조건식) { 수행문; // 조건식이 참일 경우에 이 문장을 수행 }

조건식이 만족하는 경우와 만족하지 않는 경우를 모두 나타낼 때는 if-else문을 사용합니다.
'만약 ~이라면, 그렇지 않다면'으로 해석 가능합니다.
형태를 간단히 나타내면 아래 코드와 같습니다.

if (조건식) { 수행문1; // 조건식이 참일 경우에 이 문장을 수행 } else { 수행문2; // 조건식이 거짓일 경우에 이 문장을 수행 }


if-else 예제
 
나이에 따라 다른 문장 출력하기

package chapter2; public class chapter2 { public static void main(String[] args) { int age = 7; if(age >= 8) { System.out.println("학교에 다닙니다."); } else { System.out.println("학교에 다니지 않습니다."); } } }

if-else if-else
하나의 상황에 조건이 여러 개인 경우는 if-else if-else문으로 표현한다.
아래 코드는 간단히 문법을 표현한 코드이다.

if(조건식1) { 수행문 1; //조건식1이 참일 경우에 수행함 } else if(조건식2) { 수행문 2; //조건식2가 참일 경우에 수행함 } else if(조건식3) { 수행문 3; //조건식3이 참일 경우에 수행함 } else { 수행문 4; //위의 조건이 모두 해당하지 않는 경우에 수행함 } 수행문 5; //if-else if-else문이 끝난 후

if-else if-else문으로 입장료 계산하기

package chapter2; public class chapter2 { public static void main(String[] args) { int age = 9; int charge = 0; if(age < 8) { charge = 1000; System.out.println("취학 전 아동입니다."); } else if(age < 14) { charge = 1000; System.out.println("초등학생입니다."); } else if(age < 20) { charge = 3000; System.out.println("일반인입니다."); } System.out.println("입장료는 " + charge + "원입니다."); } }

if-else if문과 if-if문의 차이
if-else if문은 하나의 조건을 만족하면 나머지 조건을 비교하지 않고
다음 수행문으로 넘어가지만, if문으로만 이루어진 코드는 조건마다 각각 비교합니다.

조건문과 조건 연산자
이번에 배운 if-else문은 03장에서 배운 조건 연산자로도 구현할  있습니다.

//아래 코드는 if-else문 if(a > b) max = a; else max = b; //아래 코드는 조건 연산자 max = (a > b) ? a : b;

간단한 조건문이고, 선택이 두 가지만 있을 경우에 종종 쓰인다고 합니다.

switch-case
switch-case 예제

package chapter2; public class chapter2 { public static void main(String[] args) { int ranking = 1; char medalColor = ' '; switch(ranking) { case 1 : medalColor = 'G'; break; case 2 : medalColor = 'S'; break; case 3 : medalColor = 'B'; break; default: medalColor = 'A'; } System.out.println(ranking + "등 메달의 색깔은" + medalColor + " 입니다."); } }

case 동시에 사용하기

case 1 : case 2 : case 3 : case 4 : day = 31; break;

switch-case문에서 break문의 역할
조건에 맞는 수행문을 수행한 후에 swtich-case문을 빠져나올  있도록 break문을 사용해야 한다.
 
case문에 문자열 사용하기

switch-case 예제 (2)

package chapter2; public class chapter2 { public static void main(String[] args) { String medal = "Gold"; switch(medal) { case "Gold": System.out.println("금메달 입니다."); break; case "Silver": System.out.println("은메달 입니다."); break; case "Bronze": System.out.println("동메달입니다."); break; default: System.out.println("메달이 없습니다."); break; } } }


04-2 반복문
반복문이란?
반복되는 일을 처리하기 위해 사용하는 것이 '반복문'입니다.
자바 프로그램에서 사용하는 반복문의 종류에는 while, do-while, for 이렇게 3가지 있습니다.
 
while문        

while문은 조건식이 참인 동안 수행문을 반복해서 수행합니다.

while(조건식) { 수행문1; ... } 수행문2; ...

기본적인 while문의 문법입니다.
 
어떠한 조건식을 만족하는 동안 중괄호 { } 안의 수행문을 반복해서 처리합니다.
조건문과 마찬가지로 수행문이 하나인 경우에는 { } 사용하지 않을  있습니다.
 
while 예제

package chapter2; public class chapter2 { public static void main(String[] args) { int num = 1; int sum = 0; while(num <= 10) { sum += num; num++; } System.out.println("1부터 10까지의 합은 " + sum + "입니다."); } }

while문이 무한히 반복되는 경우

while(true) { ... }

이렇게 사용하면 무한히 반복됩니다.
 
do-while
while문은 조건을 먼저 검사하기 때문에 조건식에 맞지 않으면 반복 수행이  번도 일어나지 않습니다.
하지만 do-while문은 무조건   수행한  조건을 검사합니다.

do-while 예제

package chapter2; public class chapter2 { public static void main(String[] args) { int num = 1; int sum = 0; do { sum += num; num++; } while(num <= 10); System.out.println("1부터 10까지의 합은 " + sum + "입니다."); } }


for        
반복문 중에서 가장 많이 사용하는 반복문이 for문이다.
 
for문의 기본 구조

for(초기화식; 조건식; 증감식) { 수행문; }

for 예제

package chapter2; public class chapter2 { public static void main(String[] args) { int i; int sum; for(i = 1, sum = 0; i <= 10; i++) { sum += i; } System.out.println("1부터 10까지의 합은 " + sum + "입니다."); } }

for문을 자주 사용하는 이유
for문을 사용하여 구현하면 가독성도 좋고 한 줄로 쓸 수 있습니다.
 
for 요소 생략하기
for문을 구성하는 요소는 코드가 중복되거나 논리 흐름상 사용할 필요가 없을  생략할  있습니다.
 
초기화식 생략
이미 이전에 다른 곳에서 변수가 초기화되어 중복으로 초기화할 필요가 없을 
초기화 부분을 생략할  있습니다.
 
조건식 생략
어떤 연산 결과 값이 나왔을  바로 for문의 수행을 멈추려면 조건식을 생략하고 for
안에 if문을 사용하면 됩니다. 예를 들어 1부터 시작해 수를 더해 나갈  더한 결과값이
200 넘는지 검사하려면 for 안에 if문을 사용합니다.
 
증감식 생략
증감식의 연산이 복잡하거나 다른 변수의 연산 결과 값에 좌우된다면
증감식을 생략하고 for 안에   있습니다.
 
요소 모두 생략
모든 요소를 생략하고 무한 반복하는 경우에 사용합니다.
 
중첩된 반복문
반복문 안에  다른 반복문을 중첩해서 사용하는 경우가 종종 있습니다.
 

중첩된 반복문

package chapter2; public class chapter2 { public static void main(String[] args) { int dan; int times; for(dan = 2; dan <= 9; dan++) { for(times = 1; times <= 9; times++) { System.out.println(dan + "X" + times + "=" + dan * times); } System.out.println( ); } } }

반복 횟수가 정해진 경우는 for
수행문을 반드시   이상 수행해야 하는 경우는 do -while
 경우 외에 조건의 , 거짓에 따라 반복문이 수행해야 하는 경우는 while
 
continue        
continue문은 반복문과 함께 쓰입니다.

continue 예제

package chapter2; public class chapter2 { public static void main(String[] args) { int total = 0; int num; for(num =1; num <= 100; num++) { if(num % 2 == 0) continue; total += num; } System.out.println("1부터 100까지의 홀수의 합은: " + total + "입니다."); } }

break        
반복문에서 break문을 사용하면  지점에서  이상 수행문을 반복하지 않고 반복문을 빠져나옵니다.

break 예제

package chapter2; public class chapter2 { public static void main(String[] args) { int sum = 0; int num = 0; for(num = 0; ; num++) { sum += num; if(sum >= 100) break; } System.out.println("num : " + num); System.out.println("sum : " +sum); } }

 예제처럼 break문이 내부 반복문에 있을 경우 break문이 내부 반복문에서만 빠져나옵니다.


반응형

'프로그래밍 > Java' 카테고리의 다른 글

Java 스터디 6일차  (0) 2018.10.21
Java 스터디 5일차  (0) 2018.10.19
Java 스터디 3일차  (0) 2018.10.17
Java 스터디 2일차  (0) 2018.10.14
Java 스터디 1일차  (0) 2018.10.14