JAVA - 반복문(for, while), 분기문(break, continue)

안녕하세요 .

국비 기록용으로 남길려고합니다 

참고 하실때 도움되셨으면좋겠습니다 ..!(너무믿지 말아주세요 ...)


반복문은 반복동작이필요할때 코드간략하게 사용할수있는코드입니다.

프로그래밍에서 많이쓰이기도합니다.

for문

for문의 기본 문법은

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

     실행코드

}

/*
for문 사용법입니다.
for(초기식; 조건식; 증감식){
	실행코드
}

풀어서 사용해보면
10번반복 작업하고싶을때 이런방식으로 사용하면된다.
초기식 : 처음에 어떤값으로 조건문을 실행할지 지정해주는 지역변수이다.
조건식 : if문과 똑같다고 생각하면된다 .만약 조건식으로 값이 false이면 반복문은 종료된다.
증감식 : i++ <<실행될때마다 i의값을 1씩 증가시켜라 라는뜻이다
for(int i = 1; i <= 10; i++){
}

*/

//예제1
//안녕하세요를 10번출력 방법
//반복문 안쓰고 출력하기
System.out.println("안녕하세요"); //1
System.out.println("안녕하세요"); //2
System.out.println("안녕하세요"); //3
System.out.println("안녕하세요"); //4
System.out.println("안녕하세요"); //5
System.out.println("안녕하세요"); //6
System.out.println("안녕하세요"); //7
System.out.println("안녕하세요"); //8
System.out.println("안녕하세요"); //9
System.out.println("안녕하세요"); //10

//위의 방식으로 출력을 하게되면 코드가너무길어지지만 만약 100줄을 출력해야할때는 ..너무큰노가다작업이 되어버린다 ...

//반복문 쓰고 출력하기
for(int i = 1; i <= 10; i++){
	System.out.println("안녕하세요");
}

// 예제2
// 구구단 3단 출력하기
// 아래와작성 하면 3단이 출력될것이다.
for(int i = 1; i <= 9; i++){
	System.out.println("3 * " + i + " = " + (3*i));
}

// 예제3
public void method8() {
		// 사용자에게 입력 받은 수에 해당하는 구구단 출력하기
		// 사용자가 입력한 숫자가 2~9 사이가 맞는지 확인해서 맞을 경우만 구구단 출력
		// 아닌 경우 2 ~ 9 사이의 값을 입력해야합니다 출력
		// 출력문은 printf로 작성해보기
		Scanner sc = new Scanner(System.in);
		
		System.out.print("정수 : ");
		int num = sc.nextInt();
		
		if(num >= 2 && num <=9) {
			for(int i = 1; i <= 9; i++) {
				System.out.printf("%d * %d = %d%n",num,i,(num * i));
			}
		}else {
			System.out.println("2 ~ 9 사이의 값을 입력해야합니다.");
		}
	}

 

while문

while문도 반복문이다 대신 for문과다르게 한가지의 작업을 여러번 작업해야할때 주로사용된다.

//while문
/*
[초기식]
while(조건문){
	//실행될코드
    [증감식 , 분기문];
}

//조건문이 true일경우에는 실행될코드 부분이실행되고 조건식이 false인경우 while문은 실행안된다.
//실행될코드 처음부터 끝까지 실행된후 다시 조건문으로 가서 조건을확인한다
// 조건문 : true > 한번더실행 / 조건문 false > while문 실행종료
*/

//예제1
// 초기식 i를 1로 초기화한후 
// 반복문 실행시 i++; 증감연산자로 +1씩 하게한다.
// 그리고 i <= 10 ; 10번반복 안녕하세요 출력되게 실행하였다.
	public void method1() {
		// "안녕하세요" 10번 출력
		
		int i = 1;			// 초기식
		while(i <= 10) {	// 조건식
			System.out.println("안녕하세요");
			i++;			// 증감식
		}	
		
		// 1부터 10까지 출력
		while(i <= 10) {
			System.out.println(i);
			i++;
		}
	}
    
 // 예제2
 // 1~ 10사이의 10번 반복하면서 조건으로 홀수일경우에는 출력하게 하였다.
 public void method3() {
		// 1에서 10사이의 홀수만 출력
		int i = 1;
		while(i <= 10) {
			if(i % 2 == 1) {
				System.out.println(i);
			}
			i++;
		}
	}
    
// 예제3
// String 클래스의 length() 메소드를 활용하였다. 
// length : 길이 를 알수있는 메소드이다.
// 먼저 문자열을 입력받아와 반복문으로 문자열길이만큼 반복하게하여 
// char charAt() 메소드를이용하여 한 글자씩 출력하도록 하였다.
public void method6() {
		// 사용자에게 문자열을 입력 받아 각 인덱스별 문자를 분리해서 출력
		// "apple"
		// a
		// p
		// p
		// l
		// e
		Scanner sc = new Scanner(System.in);
		System.out.print("문자열 입력 : ");
		String str = sc.nextLine();
		
		System.out.println("문자열의 길이 : " + str.length());
		
		// str.charAt(0) 
		int i = 0;
		while(i < str.length()) {
			char ch = str.charAt(i);
			System.out.print(ch + " ");
			i++;
		}
		
	}

 

사실 위의 예제는 for문 사용하는게 더 편하고 코드알아보기도쉬울것 같다

연습을위해서 while문을 사용하였다..

 

do while문

do while문은 while문과 비슷하다

while문은 조건식을 먼저확인후 블럭이 실행되는데, do while(){} 문은 먼저 무조건 블럭실행후 조건식을 확인하여 실행할지 말지 결정하는것이다.

//do while문 식
//조건식을 확인안한상태에서 무조건 코드실행 부분실행후 조건식 확인한다.
//do{
	//코드실행부분
}(조건식);

// 예제1;
// while문같은경우는 원래 실행이안되어야하는데
// do while문 확인시 1이 출력되는것을 확인이되었다 ..
int i = 1;
do{
	System.out.println(i);
}while(i == 2);

개인적인 생각이지만 .. do while문은 그냥 참고형으로 보면좋을거같기도한다 ..

잘안쓰일거같은느낌이듭니다 .. (지극히 개인적인생각 ..)

 

중첩 for문

for문과 사용법은 똑같은데, for문 안에 for문 있다고 생각하면된다

사용예제로는 달력 출력이나 ,,음 .. 구구단출력 같은 것들에 많이사용될것같다.

그리고 별찍기 ?..

/* 중첩 for문 사용법
for(초기식1; 조건식1; 증감식1){
	실행 코드1
    for(초기식2; 조건식2; 증감식2){
    	실행코드2;
    }
    실행코드3;
}

중첩 for문 실행순서
1. 조건식1 확인하여 true면 실행코드1 실행
2. 조건식2 확인하여 실행코드2 실행
3. 조건식2 확인하여 false인경우 실행코드 3 실행
이순으로 반복 진행된다.
*/

//예제1
//아래 예제는
// 1 2 3 4 5
// 1 2 3 4 5
// 1 2 3 4 5
//3줄 출력하는 중첩for문이다.
public void method12() {
		// 1부터 5까지 출력되는 문장을 3줄 출력하기
		for(int i = 1; i <= 3; i++) {
			for(int j = 1; j <= 5; j++) {
				System.out.print(j + " ");
			}
			System.out.println();
		}
	}
    
// 예제 2
// 중첩for 문이용하여 2~9단까지 출력하는 코드이다.
public void method14() {
		// 2단부터 9단까지 출력
		for(int i = 2; i <=9; i++) {
			for(int j = 1; j <= 9; j++) {
				System.out.println(i + " X " + j + " = " + (i*j));
			}
			System.out.println("======================");
		}
		
	}

 

중첩 while문

중첩 while문도있는데 이부분은 중첩 for문과 비슷하고 사용법은 while문과 똑같으므로 패쓰...

 

 

 

break문

분기문 은 반복문에서 사용하는 코드이다.

반복문 돌고있을때 중간에 멈추고싶을때 break문, continue 문으로 제어를할수있다.

break : 반복문 실행중 중간에 멈춘다

// break문에 대한 예제

// 예제1
// for문으로 무한루프 작동되다가 
// num값과 i값이 조건식으로 확인하여 true면 반복문종료
public void method2() {
		// 1부터 사용자가 입력한 숫자까지 합계
		Scanner sc = new Scanner(System.in);
		
		System.out.print("숫자 하나 입력 : ");
		int num = sc.nextInt();
		
		int sum = 0;
		
		//for문 (무한루프)
		for(int i = 1; ; i++) {
			sum += i;
			if(i == num) {
				break;
			}
		}
		System.out.println("합계 : " + sum);
	}

// 예제2
public void method3() {
		// 사용자에게 반복적으로 정수 두 개와 연산기호(문자)를 입력 받고
		// 그에 해당하는 결과 출력
		// 또한 제시 된 연산 기호가 아닌 다른 기호 입력 시 "잘못 입력하였습니다" 출력
		
		Scanner sc = new Scanner(System.in);
		
		while(true) {
			System.out.print("정수1 : ");
			int num1 = sc.nextInt();
			
			System.out.print("정수2 : ");
			int num2 = sc.nextInt();
			sc.nextLine();
			
			System.out.print("연산기호(+, -) : ");
			String op = sc.next();
			
			int result = 0; // 연산 결과 담을변수
			if(op.equals("+")) {
				result = num1 + num2;
			} else if(op.equals("-")) {
				result = num1 - num2;
			} else {
				System.out.println("잘못 입력하였습니다.");
				break;
			}
			System.out.println("result : " + result);
		}
		
	}
    
  

 

continue문

continue : 반복문 실행중 여기까지만 실행하고 처음으로 가고싶을때 사용한다.

// 예제1
public void method1() {
		// 1부터 10까지 홀수 출력
		for(int i = 1; i <= 10; i++) {
			if(i % 2 == 0) {
				continue;
			}
			System.out.print(i + " ");
		}
	}
    
// 예제2
	public void method4() {
		// 2~9단까지의 구구단 출력 중
		// 곱해지는 수가 짝수인 경우는 제외하고 출력
		// 2 X 1 = 2
		// 2 X 3 = 6
		// 2 X 5 = 10
		for(int i = 2; i <= 9; i++) {
			System.out.println("=======" + i + "단 출력" + " =======" );
			for(int j = 1; j <= 9; j++) {
				if(j % 2 == 0) continue;
				System.out.println( i + " X " + j + " = " + (i * j) );
			}
		}
	}

 

개인정인생각으로는 프로그래밍기본인 변수, 제어문, 반복문은 꼭 이해하고넘어가야할것같다.

왠지 제일 많이 쓰일것같은느낌이드네...

그래도 아직까지는 이해하고 넘어가서 아주조금 만족중이다 ...

 

 

 

'프로그래밍 > JAVA' 카테고리의 다른 글

JAVA - 2차원 배열  (0) 2021.05.23
JAVA - 배열  (0) 2021.05.18
JAVA - 조건문(if, else, else if, switch)  (0) 2021.05.13
JAVA - 연산자  (0) 2021.05.12
JAVA - 데이터 오버플로우  (0) 2021.05.12
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유