[Java] while,for 반복문

Walter Mitty·2022년 10월 19일
0

KOSTA

목록 보기
7/33

while / for 반복문

상황: Hi 를 5번 출력하세요.

System.out.println("Hi");
System.out.println("Hi");
System.out.println("Hi");
System.out.println("Hi");
System.out.println("Hi");
  • 이렇게 출력을 해본다고 가정해보자. 그럼 100번 반복은? 1000번은?
  • 변하지 않는 부분과, 변하는 부분이 어느 부분인지 생각을 하고 반복문을 작성한다.
    • 변하지 않는 부분 System.out.println( );
    • 변하는 부분 = 횟수

따라서,

  • while 문:
int i = 0; // 반복 카운트를 넣어줄 변수를 선언
while(i<5) { // 몇번 반복할건지 (조건)을 적어준다.
      System.out.println("hi"); //반복문안에 반복해야 할 일을 적으면된다.
      i++;
      // break; 반복문을 빠져나가기 위해 써도 되는데 권장하지는 않는다.
      // i가 5면 빠져나오게하자. -> while (조건) 을 만족하지 않으면 돌지않는다.
}
  • for 문:
for(int i=0; i<5; i++) {
	System.out.println("hi");
}

상황: 1,3,5,7,9 를 출력하세오.

  • while 문:
i=0;
while(i<5) { // i<=4가 알고리즘할 땐 시간 덜 걸림
	System.out.println(i);
    i++
    //i++ 안해주면 무한 Loop~
}

상황: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 숫자 총 10개를 를 출력하세요.

  • 수의 나열 = 수열
  • 현재숫자 == 이전이전숫자 + 이전숫자
    이런 수열을 피보나치 수열 이라고 한다.

    즉, 앞앞수 + 앞수 = 현재수 가 되는데 그 이후 현재수 기준으로
    앞앞수 = 앞수가 되고, 앞수 = 현재수가 된다.
  • while
i=1;
int n1 = 1;
int n2 = 0;
int n3 = 0;

while(i<=10) { // 10번 반복!
	n3 = n1 + n2;
	System.out.println(n3);
	n1 = n2;
	n2 = n3;
	i++;
}

출력값:
1
1
2
3
5
7
13
21
34
55

옆으로 나란히 , 와 함께 나열하기 위해

while(i<=10) { 
	n3 = n1 + n2;
    if(n>1) { //1 1 2 이렇게 말고 1, 1, 2, 로하기위해 , 추가. 맨 앞에는 빼고!
    	System.out.print(", ");
    }
	System.out.print(n3); //줄바꿈 없이 한번에 쫙
	n1 = n2;
	n2 = n3;
	i++;
}
System.out.println();
// Solution 01
i = 0;
char al =A;
while(i<=25) {
  System.out.println((char)(al+i));
  i++;
}

처음에는 Z까지 숫자로 돌리려고 했는데 숫자로 26번 찍어서 Z 나올 때 까지 반복하는게 아니라 A~Z 까!지! 찍는거다.

// Solution 02
i = 0;
char al = 'A';
while(al<=(int)'Z') {
  System.out.println((char)(al+i));
  al++;
}

serrrrri가 알려준 방법!

// BEST Solution
char al = 'A';
while(al<='Z') {
  System.out.println(al);
  al++;
}
  • 일단 i 필요 없다.
  • 조건에서 (int)'Z' 할 필요없이, 바로 'Z' 비교
    char type <= char type 이므로 형변환이 필요 없다!
  • (char)이나 +i 도 필요없음!
    al++; 해주면 연산이 들어가면서 알아서 A(65) 에서 +1 해준다.

char 타입을 이용해 아스키코드 하는게 뭔가 제일 복잡시럽다잉.

  • 구구단 while 버전
System.out.println("구구단2단~5단");
   int dan = 2; //단
   while(dan <= 5){
     i = 1; //1~9
     while( i <= 9 ){
       System.out.print(dan*i + "  ");
       i++;
     }
     System.out.println();
     dan++;
    }

0개의 댓글