본문 바로가기

공부/java

java 반복문 : for문, 확장 for문

728x90

 

 

 

※ 반복(loop) for문
- 반복문 : 프로그램의 일정부분을 지정된 횟수만큼 반복하여 실행하는 구조문을 의미


※ for 문법

for (초기값;조건값;증감값) {
  실행영역;
}

 

 

ex)

int i,sum=0;
for (i=1;i<=50;i++){
   sum+=i;
}
System.out.printIn("계산결과="+sum);


결과값은 아래와 같음)


계산결과=1275
ex)

int sum=0;
for (int i=1;i<=10;i++){
   sum+=i;
   system.out.printIn("1부터" +i+"까지 계산결과="+sum);
}


결과값은 아래와 같음)


1부터 1까지 계산결과=1
1부터 2까지 계산결과=3
1부터 3까지 계산결과=6
1부터 4까지 계산결과=10
1부터 5까지 계산결과=15
1부터 6까지 계산결과=21
1부터 7까지 계산결과=28
1부터 8까지 계산결과=36
1부터 9까지 계산결과=45
1부터 10까지 계산결과=55

 

 

※ 키보드로부터 값을 입력받기 :Scanner 클래스
- Scanner : 키보드로부터 정수, 실수, 문자열을 읽어올 수 있음


※ Scanner sc=new Scanner(System.in);
    → sc는 객체명 System.in 은 입력한 값을 바이트 단위로 읽음


※ 메서드와 기능

next()
입력값을 가져옴 (문자열 공백 이전까지)
nextInt()
입력값을 정수형으로 가져옴
close()
해당 scanner를 닫음

※ import java.util.Scanner; 로 클래스 추가

 

 

ex)

Scanner sc=new Sanner(System.in);
String irum1=sc.next();
String irum1=sc.nextLine();
sc.close();
System.out.printIn("이름:"+irum1);
System.out.printIn("이름:"+irum2);


홍 길 동을 입력할경우 아래처럼 결과가 나옴)


이름:홍
이름:길 동
ex)

Scanner sc=new Sanner(System.in);
int jumsu=sc.nextInt();
System.out.printIn("점수:"+jumsu);


90을 입력한 경우 아래처럼 결과가 나옴)


점수=90
ex)

System.out.printIn("합계를 계산할 숫자를 입력해요");
Scanner sc=new Scanner(System.in);
int limit_val=sc.nextInt();
sc.close();
for(int i=1;i<=limit_val;i++)
sum+=i;
System.out.printIn("1부터 "+limit_val+"까지 합계="+sum);


// 실행하면 화면에 합계를 계산할 숫자를 입력해요 라는 문구가 뜸
// 그곳에 100을 입력하고 엔터를 치면 아래처럼 출력이 됨


1부터 100까지 합계=5050

※ 이클립스에서 클래스를 사용할 때 자동으로 임포트 시켜주는 단축키는 crtl + spacebar


※ 다중 for 문

for (초기값;조건값;증감값) {
 for (초기값;조건값;증감값) {
  실행영역;
 }
}

 

 

ex)

for(int i=1;i<=5;i++) {
  for(int j=1;j<=5;j++) {
     System.out.print(j);
  }
}


결과는 아래와 같음)


1234512345123451234512345
ex)

for(int i=1;i<=5;i++) {
  for(int j=1;j<=5;j++) {
     System.out.printf("%4d",j);
     System.out.printf("\n");
  }
}


// printf 메서드를 사용하면 서식을 넣어줄수있음
// "%4d",j 는 j를 한번 출력할 때 4자리를 주겠단 뜻임
// "\n"는 다음줄로 넘어간다는 뜻임


결과는 아래와 같음)


1   2   3   4   5
1   2   3   4   5
1   2   3   4   5
1   2   3   4   5
1   2   3   4   5
ex)

for(int i=1;i<=5;i++) {
  for(int j=1;j<=i;j++) {
     System.out.printf("%4d",j);
     System.out.printf("\n");
  }
}


결과는 아래와 같음)


1   
1   2   
1   2   3   
1   2   3   
1   2   3   4   5

 

 

※ 확장 for 문
- 제어 변수 대신 배열, 콜렉션 클래스 등의 모든 요소값을 루프로 가져와서 처리


※ 확장 for 문법

for (요소타입 변수명:반복대상) {
   실행영역;
}

 

 

ex)

int arr[]={1,2,3,4,5,6,7};

for(int a:arr) {
     System.out.printf("%4d",a);
  }
}


결과는 아래와 같음)


    1    2    3    4    5    6   7
ex)

int arr[]={1,2,3,4,5,6,7};
int sum=0
for(int a:arr) {
  sum+=a;
  }
  System.out.printf("%4d",a);
}


결과는 아래와 같음)


  28

 

 

 

반응형