java 에서는 반복적인 수행을 할 수 있도록 만들어주는 명령어가 존재합니다.

 

- 반복문의 종류는 3가지 존재합니다.

 

1) While문

 

2) D0{ } While 문

 

3) For 문

 

 

 

 

각각 반복문에 대해서 예시를 통해 자세히 설명하겠습니다.

 

1) While 문

 

● 기본 형식

 

while(조건식)   //조건식 안에는 booleal(True or False) 값이 옵니다.

{

    실행문장;

    …

}

package 반복문;

public class WhileBasic {
public static void main(String[] args) {
    int num  = 1, result = 0;
        while(num < 5) { 
        	System.out.println("명령문 실행 :" + num); 
        	num++; 
        }    

 

주의할점!!

int num = 1;

while(num < 5) { 
System.out.println("명령문 실행 :" + num); 이대로 명령문을 실행하면 1이 반복해서 출력된다.  }

이대로 실행 시키면 강제로 멈추 않는한 반복해서 1이 출력합니다.

그렇기 때문에 조건에 맞추어서 num의 값이 증가할 수 있도록 증감연산자를 이용하여 값이 증가하도록 해줍니다.

 

 

예시)

1~100의 값을 더한 값을 출력하세요.

package 반복문;

public class 반복문 {

	public static void main(String[] args) {
	    int num= 1, result = 0;
	    while (num<=100) {
	    	result += num;
	    	num++;
	    }
	    System.out.println("1~100의 합 : " + result);	

-  계산 값이 int의 범위를 넘는지 넘지 않는지 확인해야합니다.

 

 

 

2) D0{ } While 문

 

● 기본형식

 

do{     

    실행문장;

     …

} while(조건식);  // 조건식 안에는 boolean(True or False)의 값이 옵니다.

package 반복문;

public class 반복문 {

	public static void main(String[] args) {
		int num = 0, result = 0;
		do {
		    num++;
			System.out.println(num);
		}while(num<5);

: 결과 값으로 1~5까지 출력 됩니다.

 

그렇다면 위의 while 문과 do {} while 문의 차이점은 무엇일까요?

 : do while 문은 한번은 실행을 한 이후에 조건을 체크하고,  while 문은 처음부터 조건을 확인하기 때문에 한번도 출력되지 않을 수 있습니다.

 

예시)

1~100의 값을 더한 값을 출력하세요. (누적값 , 카운팅 값, 총 합을 출력하세요.)

 

package 반복문;

public class 반복문 {

	public static void main(String[] args) {
		int num = 1; int result = 0;
		do {
		
			result+=num;
			System.out.println("카운팅 값 : " + num);
			num++;
			System.out.println("누적값 : " +result);

		}while(num<=100);
		
		System.out.println("1~100의 합 : " +result);

 

 

3) For 문

:  두괄식으로 조건이 제시되기 때문에 가독석이 좋아서 개발자들이 가장 많이 사용하는 반복문 입니다.

 

● 기본형식

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

{

      실행문장;

      … 

}

package 반복문;

public class 반복문{

	public static void main(String[] args) {
		int result = 0;
		for(int num=1;num<=5;num++) {
			System.out.println(num);	
		}

 

● for을 이용한 활용식

 

⑴ 1~100사이의 (양의) 짝수를 출력하시오.

 

package 반복문;

public class 반복문 {

	public static void main(String[] args) {
		int result = 0;
		for(int num=1;num<=100;num++) {
			if(num%2==0) {
				System.out.println(num);
			}
				
		}

- if 조건문을 활용하여 2로 나누었을 때 나머지의 값이 0이 되면 짝수 이므로 그 값을 출력하도록 합니다.

 

⑵ *1~100 사이의 5의 배수이면서 7의 배수를 출력하시고, 5의 배수 이거나 7의 배수를 출력하여주세요.

*1~100 사이의 (양의) 짝수를

5와 7의 배수 

package 반복문;

public class 반복문 {

	public static void main(String[] args) {
		int result = 0;
		for(int num=1;num<=100;num++) {
			if((num%5==0)&&(num%7==0)) {
				System.out.println(num);
                
5의 배수 이거나 7의 배수

package 반복문;

public class 반복문 {

	public static void main(String[] args) {
		int result = 0;
		for(int num=1;num<=100;num++) {
			if((num%5==0)||(num%7==0)) {
				System.out.println(num);

 

if 조건문 안에 논리연산자를 이용하여 and의 기능이 필요할 때 && 를 사용하고, or 의 기능이 필요할 때 || 를 사용합니다.

 

 

 

기타) Breake, Continue

 

각각 예시를 통해서 설명하겠습니다.

 

Breake) 그 식 안에서 나가도록 만드는 명령어 입니다.

 

Q) 1~100 사이의  5의 배수 이면서 ,  7의 배수인 첫 정수만 출력하시오.

package 반복문;

public class 반복문 {

	public static void main(String[] args) {
		int result = 0;
		for(int num=1;num<=100;num++) {
			if((num%5==0)&&(num%7==0)) {
				System.out.println(num);
				break;
			}
				
		}

결과값 = 35 // 처음 결과를 받고 위의 코드에서 나오게 만들어주는 명령어 입니다.

 

 

 

Continue)

for 문 안에서는 끝으로 이동해 가라고 명령해주고, while 문과 do while 문에거서는 조건으로 돌아가도록 만듭니다.

package 반복문;

public class 반복문 {

	public static void main(String[] args) {
		for(int num=1;num<=100;num++) {
			if((num%5 != 0)||(num%7 != 0)) {
				System.out.println(num);
				continue;
			}
			
		}

continue; num=1일때,  (num % 5 != 0) 의 값은 true 이므로 num++로 올라가게 해준다.

 

 

 

지금까지 공부한 것중에 가장 많이 사용되는 if의 예제를 조금 더 풀어보도록 하겠습니다.

 

① 구구단 2단을 출력하세요.

package 구구단;

public class 2단{

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

 

② 구구단 전체를 출력하세요. (가로 , 세로)

package 구구단;

public class 구구단 세로 출력{

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

public clas 구구단 가로 출력 {

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

 

 

③ ( * ) 모양을 사용하여 반쪽짜리 tree 모양 과 역 tree모양을 출력하세요.

package 반 tree;


public class 반 tree {

	public static void main(String[] args) {
		for(int num=1; num<=10 ; num++){
			for(int i=1 ; i<=num ; i++) {
				System.out.print("*");
			}System.out.println();
		}

	    }	
		

package 반 역 tree;

public class 반 역 tree {

	public static void main(String[] args) {
		for(int num=10; num>=1 ; num--){
			for(int i=1 ; i<=num ; i++) {
				System.out.print("*");
			}System.out.println();
		}

	    }	

 

 

 

 

 

 

1~100 사이의 (양의) 5의 배수 이면서, 7의 배수 첫 정수만 출력

 

결과값 : 35

 

// for 문안에서 끝으로 이동해 가라고 명령하는 것이다.= x++
   // while 조건으로
   // do while 조건으로

 

continue; x= 1 일때, (x % 5 !=0) 의 값은 true 이므로   x++ 로 올라가게 해준다.

 

 

'빅데이터 > JAVA' 카테고리의 다른 글

[JAVA] 객체지향언어(Object oriented Programming) [Class, new]  (0) 2020.04.26
[JAVA] METHOD  (0) 2020.04.25
[JAVA] 조건문(If , Switch)  (0) 2020.04.22
[JAVA] 자료형변환(Type Casting)  (0) 2020.04.22
[JAVA] 연산자 (Operator)  (0) 2020.04.21

+ Recent posts