기본적으로 프로그램의 진행은 순차적으로 진행된다.
단, 이 순차적인 흐름을 바꾸고자 한다면 제어문을 이용해서 직접 제어 가능하다.
선택적으로 실행시키고자 할 떄 => 제어문
반복적으로 실행시키고자 할 때 => 반복문
그 외의 흐름제어 => 분기문
▶ 조건식
- 조건식을 통해 참, 거짓 이냐를 판단해서 그에 해당하는 코드를 실행한다.
- 조건식의 결과값는 항상 true/false여야한다.
- 보통 조건식에서는 비교연산자(대소, 동등), 논리연산자(&&,||)을 주로 사용한다.
- 조건문은 크게 if문(단독if, if ~ else, if ~ else if, 중복 if)과 switch문으로 나뉜다.
■ 단독 if문
[표현법]
if(조건식) {
조건식이 true일 때 실행되는 코드
}
=> 조건식의 결과가 참(true)일 경우 중괄호 블럭 안의 코드가 실행된다.
=> 조건식의 결과가 거짓(false)일 경우 중괄호 블럭은 무시하고 넘어간다.
예제) 사용자에게 정수값을 입력받은 후 "양수입니다.", "양수가 아닙니다."를 출력
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int num = sc.nextInt();
if(num > 0) {
System.out.println("양수입니다.");
}
if(num <= 0) { // 실행될 필요가 없는 조건문이지만 jvm은 if문을 만나면 무조건 조건검사한다.
System.out.println("양수가 아닙니다.");
}
■ if ~ else 문
[표현법]
if(조건식) {
조건식이 true라면 실행될 코드
} else {
if문의 조건식이 false라면 실행될 코드
}
예제) 사용자에게 정수값을 입력받은 후 "양수입니다.", "양수가 아닙니다."를 출력
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int num = sc.nextInt();
if(num > 0) {
System.out.println("양수입니다.");
}
else {
System.out.println("양수가 아닙니다.");
}
■ if ~ else if문
같은 비교대상으로 여러개의 조건을 제시해야할 경우 사용
[표현법]
if(조건식1) { // 조건식1이 true라면 실행코드1을 실행시키고 if블록 종료
실행코드 1
} else if (조건식 2) { // 조건식2이 true라면 실행코드1을 실행시키고 if블록 종료
실행코드 2
} else if (조건식 3) { // 조건식3이 true라면 실행코드1을 실행시키고 if블록 종료
실행코드 3
} else { // 위 모든 조건이 false인 경우 자동으로 실행
실행코드 4
}
예제) 사용자에게 정수값을 입력받은 후 "양수입니다.", "0입니다.", "양수가 아닙니다."를 출력
Scanner sc = new Scanner(System.in);
System.out.print("정수 : ");
int num = sc.nextInt();
if(num > 0) {
System.out.println("양수입니다.");
} else if (num == 0) {
System.out.println("0입니다.");
} else {
System.out.println("음수입니다.");
}
■ return
return은 위에 코드를 다 처리하고 난 다음 현재 호출된 메서드를 종료시킨다.
예제) 사용자에게 이름, 성별을 입력받아 남자인지 여자인지 출력
System.out.print("이름 : ");
String name = sc.nextLine();
System.out.print("성(M/F) : ");
char gender = sc.nextLine().charAt(0);
String result;
if(gender == 'm' || gender == 'M') {
result = "남학생";
}
else if(gender == 'f' || gender == 'F') {
result = "여학생";
}
else {
result = "잘못 입력하셨습니다.";
return; // 현재 호출된 일반메소드를 빠져나가는 역할을 한다.
}
System.out.println(name+"님은 "+result+"이다");
}
성별이 (M/F) 두개 중 하나가 아닌 값을 입력했기 때문에 return이 실행 후 메서드가 종료되어 콘솔창 화면이 더 이상 바뀌지 않는다.
■ 문자열과 문자열간의 동등비교(문자열 == 문자열)
[표현법]
문자열.equals(문자열)
기본자료형간 비교시 == != 사용이 가능하다.
단, 참조자료형은 동등비교시 정상적으로 비교가 안된다.
때문에 참조자료형은 .equals()라는 방법으로 비교를 한다.
예시) 사용자에게 이름을 입력받아 홍길동과 일치하는지 확인
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
if(name.equals("홍길동")) { // 조건식으로 생각해도 무방하다. true or false값을 반환
System.out.println("홍길동님 반갑습니다");
}else {
System.out.println("홍길동님이 아닙니다.");
}
}
'JAVA' 카테고리의 다른 글
JAVA(9-1) 반복문(For) (0) | 2023.03.27 |
---|---|
JAVA(8-2) 제어문(switch) (0) | 2023.03.25 |
JAVA(7-8) 연산자(삼항연산자) (0) | 2023.03.24 |
JAVA(7-6) 연산자(논리연산자) (0) | 2023.03.24 |
JAVA(7-5) 연산자(비교연산자/관계연산자) (0) | 2023.03.23 |