☭DEVELOPER/#2 웹개발(자바기반 풀스택)

[BACKEND]JAVA_ECLIPSE08 반복문: for문, while문, do-while문

조반짝 2023. 8. 18. 18:17
728x90
반응형

반복문

루핑(looping) : 제어문 처음으로 다시 되돌아가 반복 실행

 

for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느 쪽을 선택해도 좋지만,

 


for 문

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

true일 경우 중괄호 내부가 실행, 반복할 때마다 증감식이 실행된다

초기화식은 조건식과 증감식에서 사용할 루프 카운터 변수를 초기화한다. 

반복 횟수를 알고 있을 때 사용

반복문은 한번 작성된 실행문을 여러번 반복 실행해 주기때문에 코드를 줄여 간결하게 만들어 준다.

 

초기화식:  for문 내부에서 사용되는 로컬변수, 조건식과 실행문, 증감식에서 사용할 변수를 초기화 하는 역할

                 초기화식이 필요 없을 경우에는 다음과 같이 초기화식을 생략할 수 있다.

int i = 1;
for(; i<=100;, i++){ ... }

                 초기화식이 2개 이상일 수도 있고, 증감식도 2개 이상일 수 있다.

                 이런 경우에는 쉼표(,)로 구분해서 작성한다.

for (int i=0, j=100; i<=50 && j>=50; i++, j--) { ... }

 

package chapter04.sec02.exam01;

//반복문인 for문을 활용하여, 1부터 10까지의 정수(int)형 숫자값을
//화면으로 출력하는 자바 프로그램 예시소스 코딩
public class ForprintFrom1To10Example {

	public static void main(String[] args) {

		for (int i = 1; i <= 10; i++) {
			System.out.println(i);
		}
	}

}

1부터 100까지 합을 출력

package chapter04.sec02.exam02;

//반복문인 for문을 활용하여, 1부터 100까지의 정수값 합을 구하는
//자바 프로그램 소스 코딩입니다
public class ForSumFrom1To100Example {

	public static void main(String[] args) {
		
		int sum = 0;
		
		for (int i = 1; i <= 100; i++) {
			sum += i; //sum = sum + i;
		}
		System.out.println("1부터 100까지의 정수값 합 = " + sum);
	}
}
package chapter04.sec02.exam02;

import java.util.Scanner;

//반복문인 for문을 활용하여, 1부터 100까지의 정수값 합을 구하는
//자바 프로그램 소스 코딩입니다
public class ForSumFrom1To100Example {

	public static void main(String[] args) {
		
		//scanner 클래스를 활용하여, 입력정수값까지 숫자들의 합을
		//화면으로 표시하는 소스코딩 수정을 해보시기 바랍니다.
		//예를 들어 5를 입력하면, 다음과 같이 화면 결과값이 나타나도록한다.
//		1부터 5까지의 정수 값 합 = 15
		
		Scanner scan = new Scanner(System.in);
		System.out.println("값을 입력하세요==>");
		int num = scan.nextInt();
		
		
		int sum = 0;
		for (int i = 1; i <= num; i++) {
			sum += i; //sum = sum + i;
		}
		System.out.println("1부터" + num + "까지의 정수값 합 = " + sum);
	}
}

 

1부터 100까지 합을 출력2

초기화식을 for문 전에 선언하면 전역에 사용가능하다

package chapter04.sec02.exam03;

//변수 i를 for문의 초기화식에서 선언하지 않고, for문 코딩하기 전에
//선언한다면 for문 내부 뿐만 아니라 for문을 벗어나서도 사용하는 자바 프로그램 예시 코딩입니다.
public class ForSumFrom1To100Example2 {

	public static void main(String[] args) {

		int sum = 0;
		
		int i = 0;
		for (i = 1; i  <= 100; i++) {
			sum += i; //sum = sum + i;
			System.out.println("sum 값 =" + sum);
		}
		System.out.println("1~ " + "합=" + sum);
	}

}

package chapter04.sec02.exam03;

import java.util.Scanner;

//변수 i를 for문의 초기화식에서 선언하지 않고, for문 코딩하기 전에
//선언한다면 for문 내부 뿐만 아니라 for문을 벗어나서도 사용하는 자바 프로그램 예시 코딩입니다.
public class ForSumFrom1To100Example2 {

	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		System.out.print("값을 입력하세요==>");
		int num = scan.nextInt();
		
		int sum = 0;
		
		int i = 0;
		for (i = 1; i  <= num; i++) {
			sum += i; //sum = sum + i;
			System.out.println("sum 값 =" + i +", sum 값 =" + sum);
		}
//		101-1 > 
		System.out.println("1~ " + num + "합=" + sum);
	}

}

 

 


ForFloatCounter

for 문을 사용할 때 주의할 점

초기화에서 루프 카운터 변수를 선언할 때 부동 소수점 float 타입을 사용하면 안된다.

이론적으로 루프타임을 10번을 반복해야하지만 0.1은 float 타입에 정확히 표현할 수 없기 때문에

루프 카운터 변수 x에 더해지는 실제 0.1보다 약간 크다.

그래서 루프는 9번만 실행된다.


ForMultiplicationTable 중첩 for 문

for문 또 다른 for문을 내포할 수 있는데, 이것을 중첩 for문이라고 한다.

구구단 만들기

m =2 일때 n은 1~9까지 변하면서 2 X n = 2*n을 출력하게 된다.

 

<바깥 for 문>

 

바깥 for문 안에 안쪽 for문을 삽입한다.

package chapter04.sec02.exam05;

// 중첩 for 문 (for 문 안에 또 다른 for문을 내포하는것) 활용예시
//구구단을 출력하는 예시 코드를 소스코딩해봅니다.
public class ForMultiplicationTableExample {

	public static void main(String[] args) {
		
		for (int dan = 2; dan <= 9; dan++) {
			System.out.println("***" + dan + "단***");
			
			for (int num = 1; num <=9; num++) {
				System.out.println(dan + " X " + num + "=" + (dan*num));
			}	
		}
		
	}

}

 


while문

조건에 따라 반복할 때 주로 사용한다.

시작할 때부터 조건식을 검사하여 블록 내부를 실행할 지 결정

조건식이 true일 경우에 계속해서 반복한다. 조건식에는 비교 또는 논리 연산식이 오는데 조건식이 false일 경우 반복행위를 멈추고 while문을 종료한다.


1부터 10까지 출력

 

 


1부터 100까지 합을 출력

package chapter04.sec02.exam07;

import java.util.Scanner;

//while 문을 활용하여, 1부터 100까지의 합을 출력하는 자바 프로그램 소스코딩
public class WhileSumFrom1To100Example {

	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		System.out.print("합계값 구하고 싶은 정수를 입력하세요 ==>");
		int num = scan.nextInt();
		
		int sum = 0;
		
		int i = 1;
		
		while (i<=num) {
			sum += i; //sum = sum + i;
			i++;
		}
		
		System.out.println("1 ~ " + num + "합 =" + sum);
	}
}

do-while문

do 무조건 실행하고 반복

블록 내부의 실행문을 우선 실행하고 실행 결과에 따라 반복실행을 계속할지 결정

조건을 나중에 검사

 


1부터 100까지 합구하기

 

728x90
반응형