Java 반복문

Chunbae·2024년 10월 8일
0

Java

목록 보기
4/11

오늘 복습할 내용은 Java의 반복문입니다.

반복문이란?

특정한 코드 블록을 여러번 실행하도록 도와주는 제어 구조입니다. 반복문을 사용하면 코드가 불필요하게 반복되는 것을 피하고 간결하고 효율 적인 코드를 작성할 수 있게됩니다.

자바의 반복문은 For문 While문 Do-while문으로 분류되며
각각의 방식이 다르며 사용목적에 따라 다르게 사용됩니다.

For문

for문은 반복 횟수가 미리 정해져있을때 사용합니다.

반복문은 초기화, 조건, 증감식을 작성하여 코드의 흐름을 명확하게 표시합니다.

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

for(int i = 0; i < 10; i++){}
  • 초기화 : 반복문이 시작될 때 한번 실행되고 반복에 사용할 변수를 지정하고 초기 값을 할당합니다.
  • 조건 : 조건이 참인 경우에만 실행되며, 조건이 거짓이 되면 반복문이 종료됩니다.
  • 증감식 : 반복문이 반복될때마다 설정한 변수를 증가 / 감소 시킵니다.
for(int i = 0; i < 10; i++){
	System.out.print(i);
}
//0,1,2,3...9



//for문을 이용한 배열 누적연산
int [] arr = {1,2,3,4,5,6,7,8,9,10};
int result = 0;

for(int i = 0; i <=arr.length; i++){
	result += arr[i];
}
//55

for문은 반복 횟수가 명확하게 정해져 있는경우 사용하기에 좋습니다.(List, array등등)


While/Do-While문

While문

while문은 특정 조건이 참일 동안 반복을 수행합니다. 반복을 수행하기 전 제일 먼저 조건을 평가하기 때문에 평가에 통과하지 않으면 while문이 수행되지 않습니다.

while(조건식){
	수행 블록
}
int a = 1;
while(a < 10){
	System.out.println("a" + a);
    
    a++;
}
//a = 1....a = 9

while문은 반복 횟수가 명확하지 않은 경우에 사용이 적합합니다.
조건이 참인 경우에 반복을 계속 진행하기 때문에 무한반복에 들어가지 않도록 주의해야합니다.


Do - while문

while문과 비슷하지만 조건 평가가 반복문을 한번 실행한 뒤에 동작한다는 차이점이 있습니다.

do{
	//조건식이 true인 경우 실행 블럭 / 선 실행 블럭
}while(조건식);
int sum = 0;
int i = 1;

do{
	sum += i;
    i++;
}while(i <= 100);


System.out.println("sum = " + sum);
//sum = 5050

최소 한번은 실행되어야하는 반복을 처리할때 유용하게 사용됩니다.

무한 반복문

의도적으로 프로그램을 지속적으로 실행하거나 특정 이벤트가 발생까지 대기가 필요한 경우에 사용됩니다.

for(;;){
	수행블럭
}

while(true){
	수행블럭
}

do{
	수행 블럭
}while(true);

다음처럼 의도적으로 사용된 무한 반복문을 종료하는 방법은 특정 조건을 달성한 경우 break문을 사용해 종료합니다.

무한반복문을 사용할때는 반드시 종료 조건을 명확하게 해야하고 예기치 못한 무한 반복이 발생하지 않도록 주의해야합니다.

while(true){
	System.out.print("Enter Number");
    int num = sc.nextInt();
    if(num == 0){
    	System.out.println("일치합니다");
        break;
	}
}

다음 코드는 사용자 입력을 받아 입력 숫자가 0인 경우 무한 루프를 종료하도록 하는 코드입니다.

break문?
break문은 특정 조건을 만족하면 조건문을 빠져나오게 합니다.
break문이 실행되면 기존에 break문 이후에 동작되는 코드는 실행되지 않으며 조건이 달성되는 즉시 조건문을 탈출합니다.


향상된 for문(for-each)

향상된 for문은 java배열이나 컬렉션의 모든 요소를 순회하여 사용할때 사용합니다. 특정 인덱스의 접근을 하지않고 처음부터 마지막까지 모든 요소에 대해 반복적인 작업 수행이 가능합니다.

for(타입 변수명 : 컬렉션 또는 배열){
	//실행구문
}
int [] nums = {1,2,3,4,5};

//기존 for문
for(int i = 0; i<= nums.length; i++{
	System.out.print(nums[i]);
}

//향상된 for문
for(int num : nums){
	System.out.print(num);
}

인덱스 관리를 할 필요가 없어 직관적이고 기존 for문보다 간결하고 코드의 가독성을 높혀 줍니다.

profile
말하는 감자

0개의 댓글