1. 조건문

슈도코드 연습

슈도코드를 통해 플로우를 짜는 연습을 한다면 조건 값에 따른 행동을 도출해내기 수월해진다.

Untitled

시작
특정 회원을 찾는다
그 회원의 등급이,
if 'A' -> '우수회원' 출력
else if 'B' -> '정회원' 출력
else -> '준회원' 출력
종료

if-else 문

int age = 10;

if(age >= 19) {
	System.out.println("성인");
}
else if(age < 13) {
	System.out.println("어린이");
}
else {
	System.out.println("청소년");
}

if-else의 구조는 조건 값에 맞는 동작을 수행하면 다른 분기의 동작은 수행하지 않는다. 생각보다 위치를 고려하며 써야하는 경우가 종종 있다. 위치를 잘 고려한다면 조건의 중복을 줄일 수 있다.

switch 문

char memberGrade = 'A';

switch(memberGrade) {
	case 'A' :
		System.out.println("우수 회원");
		break;
	case 'B' :
		System.out.println("우수 회원");
		break;
	default :
		System.out.println("준회원");
}

switch문은 변수가 특정 조건에 부합하면 동작을 수행한다. 값의 범위를 지정하는 조건보다 특정 값으로 정해져 있는 조건에 쓰기 적합하며, break;를 적지 않으면 다음 케이스까지 동작하니 유의.

참고로 향상된 switch문에서는 break를 적지 않아도 되는 편리한 방식으로 업그레이드 되었다.

2. 함수 호출방식

<aside> 💡 선언한 변수(caller)와 메서드호출 시의 파라미터(callee)는 stack 내에 서로 다른 존재임을 알자.

</aside>

Call by Value

Untitled

기본형 타입은 값을 복사하여 새로 할당 받는다. 호출stack에서 main메서드와 호출한 메서드에 각각 이름만 같은 다른 변수가 존재하는 것 뿐이다. 그러므로 할당받은 값을 변경해도 원본에 영향을 주지 않는다.

Call by Reference