일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 프리미티브 타입
- junit 5
- 로컬 클래스
- annotation processor
- 익명 클래스
- 바운디드 타입
- System.err
- 자바할래
- yield
- 항해99
- 함수형 인터페이스
- 스파르타코딩클럽
- raw 타입
- 정렬
- 접근지시자
- 제네릭 타입
- 람다식
- github api
- 자바스터디
- Switch Expressions
- System.in
- auto.create.topics.enable
- System.out
- 브릿지 메소드
- 제네릭 와일드 카드
- throwable
- 합병 정렬
- docker
- 상속
- Study Halle
Archives
- Today
- Total
코딩하는 털보
STUDY HALLE - 4주차 본문
STUDY HALLE
4주차 : 제어문
목표
자바가 제공하는 제어문을 학습하세요.
학습할 것
- 선택문
- 반복문
선택문
특정 조건에서만 실행되는 로직이 있는 경우에 사용한다.
if - else
if (조건식) {
수행문;
}
//조건식이 참인 경우 수행. 거짓인 경우 조건문 종료.
if (조건식) {
수행문1;
} else {
수행문2;
}
//조건식이 참인 경우 수행문1. 거짓인 경우 수행문2.
public class Test {
public static void main(String[] args) {
char gender = 'M';
if ( gender == 'F' ) {
System.out.println("여성입니다.");
}
else {
System.out.println("남성입니다.");
}
}
}
- 조건이 여러개인 경우에는 else if를 사용한다.
if (조건식) {
수행문1;
} else if (조건식) {
수행문2;
} else if (조건식) {
수행문3;
} else {
수행문4;
}
- 예시) 나이별로 요금 계산하기
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt();
int charge = 0;
if ( age < 8 ) {
charge = 1000;
}
else if ( age < 14 ) {
charge = 1500;
}
else if ( age < 20 ) {
charge = 2000;
}
else {
charge = 3000;
}
System.out.println("나이 : " + age);
System.out.println("요금 : " + charge);
}
}
switch - case
- if ~ else if 문의 조건이 정수 또는 문자열일 경우 switch ~ case 로 사용할 수 있다.
switch(변수){
case 조건1: 수행문1;
case 조건2: 수행문2:
…
default : 수행문n;
}
- 예시) 순위 별 메달 색
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int rank = scanner.nextInt();
char medalColor;
switch(rank) {
case 1: medalColor='G';
break; //break가 없으면 다음 case 문이 조건과 상관 없이 수행된다.
case 2: medalColor='S';
break;
case 3: medalColor='B';
break;
default : medalColor='A'; //default는 break이 필요 없다.
}
System.out.println(rank + "등의 메달 색은 " + medalColor + "입니다.");
}
}
- 자바 7부터 조건으로 문자열을 사용할 수 있다.
public class Test {
public static void main(String[] args) {
String medalColorT="Gold";
int rank;
switch(medalColorT) {
case "Gold":
rank = 1;
break; //break가 없으면 다음 case 문이 조건과 상관 없이 수행된다.
case "Silver":
rank = 2;
break;
case "Bronze":
rank = 3;
break;
default :
rank = 0;
System.out.println("Error");
}
System.out.println(medalColorT + "메달은 " + rank + "등 입니다.");
}
}
switch문을 이용한 월별 날짜 수 확인 프로그램
- 서로 다른 조건에 대한 수행문이 같은 경우 case를 병합할 수 있다.
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt();
int day;
switch(month) {
case 1: case 5: case 7: case 8: case 10: case 12: //case 병합
day=31;
break;
case 2: day=28;
break;
case 3: case 4: case 6: case 9: case 11:
day=30;
break;
default :
System.out.println("Error");
day = 0;
}
System.out.println(month + "월의 날짜 수는 " + day + "일 입니다.");
}
}
반복문
로직을 조건문에 맞게 반복적으로 실행할 때 사용한다.
while
- 동일한 로직을 조건이 참인 경우 반복 수행한다.
while(조건식) {
수행문;
}
public class Test {
public static void main(String[] args) {
int num = 1;
int sum = 0;
while ( num <= 10 ) { //num이 10이하인 동안 수행되다가, 11이 되고부터 수행되지 않는 반복문.
sum += num;
num++;
}
System.out.println(sum);
}
}
do - while
- 먼저 로직을 한번 실행하고 조건을 확인한다.
- 최소 한번은 로직이 실행되어야 하는 경우에 사용.
do {
수행문;
} while(조건식);
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num;
int sum=0;
do {
num = scanner.nextInt();
sum += num;
System.out.println(sum);
} while ( num != 0 );
}
}
for
-
동일한 로직을 일정 횟수 반복할 수 있다.
-
반복문 중 가장 많이 사용된다.
for (초기화식; 조건식; 증감식;)
{
수행문;
}
public class Test {
public static void main(String[] args) {
int num=0;
int total = 0;
while ( num < 10) {
total += num;
num++;
}
System.out.println(total);
//위와 아래는 같은 로직이지만 for문이 더 편하고 가독성이 좋다.
int count;
int sum=0;
for(count=0; count<10; count++) { //10회 반복, 횟수의 의미가 있는경우 가독성을 위해 0부터 시작하는 것에 익숙해지자.
sum += count;
}
System.out.println(sum);
}
}
for each
- 향상된 for 문
for ( 변수 선언 : iterate ) { //iterate 객체에서 한 요소씩 순차적으로 변수에 대입되서 로직을 실행한다.
수행문;
}
public class Test {
public static void main(String[] args) {
String[] nums = {"One", "Two", "Three"};
//배열이나 ArrayList 등을 for each로 활용할 수 있다.
for(String num : nums) {
System.out.println(num);
}
}
}
Comments