타닥타닥 개발자의 일상

자바java의 순환문 for 알아보기 본문

코딩 기록/Java

자바java의 순환문 for 알아보기

NomadHaven 2021. 12. 9. 00:05

loop문, 순환문, 반복문

for : 지정 회수에 따라 반복

형식 : 


1) 변수의 선언시//int i;

for(변수의 (선언)초기화 ; 조건식 ; 연산식){

처리
}

2) 변수 없을시
for(    ; //(1)첫번째로 확인   ;    ){
}

 

 

처리 순서 :



변수의 선언(1)
for( (3)//초기화라서 한번만 들어옴 ; (2)(6)(9)  ; (5)(8) ){

처리(4)(7)
}
   (10) //조건 안맞아서 탈출

*for문 괄호 안에 있는 변수는 괄호 밖에 있는 변수에 영향을 못끼친다.

int num1;
{
int num2;

num1=1;
num2=3;

}
num1 = 2;
 괄호 안의 num1  은 괄호 밖 num1에게 영향 못끼친다.

 

 

무한루프 endless loop : 조건식이 빠지면 무한루프가 된다.


for(int i = 0  //조건식 없음   ; i++ ) {
System.out.println(i+" ");
}


끝도 없이 출력된다.

 

 

 

for문의 다양한 입력 예시들

 

입력

int n; 

for(n =0; n<2 ; n++) {
System.out.println("for loop"+ n);
}

출력


for loop0
for loop1




 

0에서 9까지 출력할때 1에서 100까지 출력할 때
for(int i= 0; i<10; i++) { 
     System.out.print(i+" ");
}
System.out.println(); 

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

System.out.println();

0 1 2 3 4 5 6 7 8 9  1 2 3 4 5 6 7 .... 100

 

 

10에서 0까지 출력할때 10 미만 짝수를 출력할때
for(int i=10; i >=0; i--) {
System.out.print(i+" ");


System.out.println();
for(int i = 0;  i<10 ; i=i+2) {
System.out.print(i+" ");
}

System.out.println();
10 9 8 7 6 5 4 3 2 1 0 0 2 4 6 8

 

 

1~100까지 숫자를 더한 합 출력 화면
int sum = 0;
for(int i = 1; i<=100 ; i++) {
sum = sum+i;
}
System.out.println("sum: "+sum);
sum: 5050

 

 

학생 6명 국어 성적의 합계와 평균을 구하라. 학생들 점수 : 90 85 95 100 85 75
int numArr[] = new int[6];
numArr[0] = 90;
numArr[1] = 85;
numArr[2] = 95;
numArr[3] = 100;
numArr[4] = 85;
numArr[5] = 75;

sum = 0; // 변수 정의
for(int i =0 ;  i< numArr.length ; i++) {
sum +=numArr[i];
}
System.out.println("sum: "+sum);

double avg = (double)sum/numArr.length;
System.out.println("avg: "+avg);
출력 화면
sum: 530
avg: 88.33333333333333

 

String names[] = {"홍길동","일지매","성춘향","홍두깨"}; 의 배열이 있다. 배열 안의 이름을 모른다는 가정하에
성춘향의 번호를 찾아라.

int number = 0;
for(int i =0; i < names.length; i++) {
number++;
if(names[i].equals("성춘향")) {
System.out.println("찾았습니다.");
System.out.println("번호는"+number+"번 입니다.");

//number++를 안쓴다면 ("번호는"+(i+1)+"번 입니다.")
출력 화면
찾았습니다.
번호는3번 입니다.

 

아래 배열의 최고 점수를 출력하라.

int numArr[] = new int[6];
numArr[0] = 90;
numArr[1] = 85;
numArr[2] = 95;
numArr[3] = 100;
numArr[4] = 85;
numArr[5] = 75;


int max = 0;
for(int i =0 ; i < numArr.length ; i++) {
if(max < numArr[i]){
max = numArr[i]; 
//max는 0이었다가 90과 비교되고 max가 90보다 작다고 확인. max=90
//max=90, 85과 비교돼서 max가 더 컸으니 max=numArr[1]처리 안됨. i=2로 증가
//여전히 max=90. 90<numArr[2]=95. 즉 90<95가 되었으므로 max=numArr[2]=95. 이제 max=95
//max=95.  95<numArr[3] =100. 즉 95<100가 되었으므로 max=numArr[3]=100. 이제 max=100.
//max=100. 100<numArr[4]=85 성립 안됨. i=5로 증가. max=100로 유지.
//max=100. 100<numArr[5]=75 성립 안됨. i<numArr.length 조건으로 인해 i=6으로 증가 못함.
//따라서 마지막 max 값 =100  
}
}
System.out.println("max:"+max);
출력화면
max:100
만약
int numArr[] = new int[6];
numArr[0] = -90;
numArr[1] = -85;
numArr[2] = -95;
numArr[3] = -100;
numArr[4] = -85;
numArr[5] = -75;
면 int max = 0;으로 할때 max가 0으로 출력됨
따라서 int max =numArr[0];
으로 설정하면 범위 값 안에서 비교 가능.

 

String names[] = {"홍길동","일지매","성춘향","홍두깨"}; 의 배열이 있다.  각각의 이름을 출력하라.
for (int i=0; i < names.length; i++) {
System.out.println(names[i]); 
}
출력화면
홍길동
일지매
성춘향
홍두깨
//다른 입력방식

for( String name : names) {
System.out.print(name+" ");
}
출력화면
홍길동 일지매 성춘향 홍두깨 

 

int numArr[] = new int[6];
numArr[0] = 90;
numArr[1] = 85;
numArr[2] = 95;
numArr[3] = 100;
numArr[4] = 85;
numArr[5] = 75;
의 배열이 있다. 배열의 변수를 각각 출력하라.
for(int num : numArr) {
System.out.print(num+" ");
}
출력화면
90 85 95 100 85 75

 

이중 for문 : for문 안에 for문이 있는 것

 

for(int i = 0; i<10; i++){
System.out.println("i= " + i);

for(int j = 0; j<5 ; j++) {    //j는 50번 루프를 돌게된다.
System.out.println("ij= "+ i+j);

}
}

 

이중 for문의 출력 화면

i= 0
ij= 00
ij= 01
ij= 02
ij= 03
ij= 04

i= 1
ij= 10
ij= 11
ij= 12
ij= 13
ij= 14

i= 2
ij= 20
ij= 21
ij= 22
ij= 23
ij= 24

i= 3
ij= 30
ij= 31
ij= 32
ij= 33
ij= 34

i= 4
ij= 40
ij= 41
ij= 42
ij= 43
ij= 44

i= 5
ij= 50
ij= 51
ij= 52
ij= 53
ij= 54

i= 6
ij= 60
ij= 61
ij= 62
ij= 63
ij= 64

i= 7
ij= 70
ij= 71
ij= 72
ij= 73
ij= 74
i= 8
ij= 80
ij= 81
ij= 82
ij= 83
ij= 84

i= 9
ij= 90
ij= 91
ij= 92
ij= 93
ij= 94

 

 

2중 for문으로 구구단을 출력하라
for(int i = 1; i <10; i++) {
for(int j=1; j<10; j++) {
System.out.println(i +"x"+j+"="+(i*j)+" ");
}
System.out.println(); //i단이 끝날때 개행 하기
}
출력화면
1x1=1 
1x2=2 
1x3=3 
1x4=4 
1x5=5 
1x6=6 
1x7=7 
1x8=8 
1x9=9 

2x1=2 
2x2=4 
2x3=6 
2x4=8 
2x5=10 
2x6=12 
2x7=14 
2x8=16 
2x9=18 

3x1=3 
3x2=6 
3x3=9 
3x4=12 
3x5=15 
3x6=18 
3x7=21 
3x8=24 
3x9=27 

4x1=4 
4x2=8 
4x3=12 
4x4=16 
4x5=20 
4x6=24 
4x7=28 
4x8=32 
4x9=36 

5x1=5 
5x2=10 
5x3=15 
5x4=20 
5x5=25 
5x6=30 
5x7=35 
5x8=40 
5x9=45 

6x1=6 
6x2=12 
6x3=18 
6x4=24 
6x5=30 
6x6=36 
6x7=42 
6x8=48 
6x9=54 

7x1=7 
7x2=14 
7x3=21 
7x4=28 
7x5=35 
7x6=42 
7x7=49 
7x8=56 
7x9=63 

8x1=8 
8x2=16 
8x3=24 
8x4=32 
8x5=40 
8x6=48 
8x7=56 
8x8=64 
8x9=72 

9x1=9 
9x2=18 
9x3=27 
9x4=36 
9x5=45 
9x6=54 
9x7=63 
9x8=72 
9x9=81 

 

 

2중 for문으로 2차원 배열 만들기

int array2[ ][ ]=
{
{11,12,13,14}, //array2[0].length =4
{21,22,23,24},
{31,32,33,34},
};



for(int i=0 ; i<array2.length; i++) {
for(int j = 0; j<array2[i].length; j++) {
System.out.print(array2[i][j]+" ");
}
System.out.println();
}

출력 화면

 

11 12 13 14
21 22 23 24
31 32 33 34

 

Comments