본문으로 바로가기

자바 프로그램은 main( ) 메서드의 시작 중괄호 {에서 끝 중괄호 }까지 위에서 아래로 실행하는 흐름을 가지고 있음.

이러한 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것을 흐름 제어문 혹은 제어문이라고 한다.

제어문의 종류에는 조건문과 반복문이 있다.

 

조건문

  • 조건식에 따라 다른 실행문을 실행하기 위해 사용
  • if문 : 조건식 결과의 true.fasle 여부에 따라 실행문 결정
  • switch문 : 변수의 값에 따라 실행문 결정

 

if문

 

  • 조건식 결과에 따라 블록 실행 여부 결정
  • 조건식에 올 수 있는 요소 ( true / false 값을 산출하는 연산식, boolean 타입 변수)
  • 중괄호 블록은 조건식이 true가 될 때 {중괄호 블록 }실행 /false가 될땐 실행x
  • (실행할 문장 하나뿐인 경우 생략 가능하지만 괄호 되도록 붙일것)
  • if(조건식) {...} 구조. 조건식이 true가 되면 {...}실행

위의 조건문은 중괄호를 달아주어 정상실행이 되었지만

밑에 조건문은 중괄호가 없어 바로 아래줄에 있는 실행문 까지가 범위가 되어 밑의 줄은 특별한 조건 없이 실행됨

 

if-else문

  • if문을 else블록과 함께 사용
  • 조건식의 결과에 따라 실행블록 선택 (if문 조건식 true이면 if문 블록 실행, false면 else 블록 실행)
  • 즉 if (조건식) {...} else {...} 구조. 조건식이 true이면 첫번째 {...} 중괄호 실행되고  else 블록은 실행안됨 false이면 첫번째 중괄호 실행안되고 else문 중괄호 실행됨

 

 

 

 

조건식에 false를 주어 실행문B로 분기함

 

 

 

if-else if-else문

  • 조건식이 여러개인 if문
  • if(조건식1) {...} else if(조건식2) {...} else {...} 구조. 첫번째 조건식이 true 가 나오면 else if랑 else는 실행x . 조건식2가 true 가 나오면 조건식 2의 else if {...} 만 실행. 조건식 1과 2가 모두 false면 else {...} 만 실행
  • 처음 if문의 조건식이 false일 경우 다른 조건식의 결과에 따라 실행 블록 선택
    • if블록 끝에 else if문 추가
    • else if문 개수는 제한 없음

(Math.random() 메소드

Math.random() // 0.0~1.0 사이 실수 리턴 (1.0은 포함X)
(int) (Math.random() * 10) // 0~ 10사이 정수 리턴 (10은 포함X)
(int) (Math.random() * 10)+1 //0~ 10사이 정수 리턴

조건문이 true가 되는 블록만 실행됨

 

switch문

  • 변수가 어떤 값을 갖는가에 따라 실행문 선택
  • switch (변수) { case 값1: ... case 값2: ... default: ... }를 말하며 변수의 값1이면 첫번째 case코드를 실행하고, 값2이면 두번째 case코드를 실행한다. 값1 과 값2가 모두 아니면 default 코드를 실행
  • 같은 기능의 if문보다 조건문을 일일히 붙여줄 필요가 없어 코드가 간결
    • break있는 경우/break없는 경우(실행된거 아래로 쭉쭉다 출력)

 

 

위와 같이 grade에 대문자가 입력되어도 해당 case에 실행문이 없기 때문에

case 'b'가 실행된 후 break 된다.

 

 

반복문

  • 반복문에는 for문, while문, do-while문이 있음.
  • 반복문은 어떤 작업을 반복적으로 실행하고 싶을 때 사용
  • 제어문 처음으로 되돌아가 반복 실행하는데 이것을 루핑(looping)이라고 함.
  • 반복문을 빠져나갈때는 break문 반복문의 처음으로 돌아갈 때에는 continue 문을 씀.

 

for문

  • for (초기화식;  조건식; 증감식) {실행문;}
  • 지정한 횟수만큼 반복할 때 주로 사용
  • 즉, 반복 횟수 알고 있을 때 사용
int sum = 0;
sum = sum + 1;
sum = sum + 2;
sum = sum + 3;
sum = sum + 4;
sum = sum + 5;
.
.
.
.
sum = sum + 100;
System.out.println("1~100의 합:" + sum);
  • 위와 같은 덧셈 연산을 더 간단하게 작성하기 위해 for 문을 사용
int sum = 0;
for (int i=1; i<=100; i++) {
	sum = sum + i;
}

System.out.println("1~100의 합 :" + sum);
  • 초기화식 : 반복의 시작 지점 지정
  • 조건식 : 언제까지 반복하는가
  • 증감식 : 얼만큼 증가하는가 

  • 잘못작성된for문의 예

부동소수점 방식은 정확 값을 0.1을 표현하지 못해 10회가 아닌 9회만 반복됨

즉, for문 방식은 정수 타입를 사용할 것!!! for문에 flat타입 사용x

 

  • 중첩for문 
    • for문 안쪽에 for문이 하나 더 있음

for문 안에 for문을 집어넣는 중첩 for문으로 만든 구구단 예제이다.

for (int m=2; m<=9; m++) {
 	System.out.println("*** " + m + "단 ***");
	for (int n=1; n<=9; n++) {
		System.out.println(m + " x " + n + " = " + (m*n));

 

n이 9 증가한 후 m이 1 증가하는 형식

 

while문

  • 형식 : while(조건식) { 실행문; }
  • 조건식이 true가 될 때까지 반복 실행
  • 조건식이 앞에있음
  • 조건식에는 주로 비교 연산식, 논리 연산식 사용

 

위와 같은 방법으로 사용한다.

 

do-while문

    • do {실행문} while (조건식); 
    • 조건식이 뒤로 오며 조건식이 true일 경우 반복, false일 경우 탈출
    • while문과 유사하나 조건을 나중에 검사
    • 블록 내부 실행문을 우선 실행하고 그 결과에 따라 반복 실행 여부를 결정
    • while문 뒤에 세미콜론 꼭 붙여주기

 

 

break문

  • for, while, do-while, switch문의 실행을 중지할 때 사용
  • 주로 if문과 함께 사용

주사위를 던져 눈이 6이 나오면 break를 작동시켜 while문을 빠져나가 프로그램을 종료시키게 하는 예제이다.

 

break-label

 

for문을 작성하기 전 label을 선언해놓으면 이중 반복문에서 특정 조건이 만족할 때 반복문을 빠져나갈 수 있게 된다.

위 코드에서는 label을 Outter로 선언해놓아 변수 값이 소문자 g가 되면 반복문을 빠져나가게 했다.

 

continue문

  • for, while, do-while문에서만 사용
  • for문은 증감 식으로, while, do-while문은 조건식으로 돌아감
  • if문과 함께 사용

if(i%2 != 0)는 i가 홀수인지를 검사하는 식이며  만약 i가 홀수일 경우 continue를 통해 for문의 출력을 하지 말고 한번 더 증감식으로 되돌아가게 함

 

 

혼자공부하는 자바

'Java' 카테고리의 다른 글

[JAVA ] 참조 타입(배열)  (0) 2022.01.31
[JAVA ] 참조 타입(참조타입과 참조변수)  (0) 2022.01.30
[Java]변수와 시스템 입출력  (0) 2022.01.23
[Java] 연산자, 연산자의 종류  (0) 2022.01.23
[Java] 변수 타입 변환  (0) 2022.01.23

코딩 공부하는 블로그
블로그 이미지 서하현 님의 블로그
VISITOR 오늘 / 전체