chapter04 조건문과 반복문

byeol·2022년 7월 5일
0

Java의 정석

목록 보기
6/9
전체 FLOW
chapter04 조건문과 반복문
1.조건문-if,switch
-1.1 if문
-1.2 if-else문
-1.3 if-else if문
-1.4 중첩 if문
-1.5 switch문
2. 반복문-for,while,do-while
-2.1 for문
-2.2 while문
-2.3 do-while문
-2.4 break문
-2.5 continue문
-2.6 이름 붙는 반복문

1.조건문-if,switch

  • 1.1 if문
  • 1.2 if-else문
  • 1.3 if-else if문
  • 1.4 중첩 if문
  • 1.5 switch문
 public class switchEx{
  public static void main(String[] args){
     int num, result;
     final int ONE =1;
     //상수는 보통 대문자로 표현
      ....
      switch(result){//switch(조건식)
        case '1'://;아님//문자리터럴 OK 정수 49와 동일
        case ONE: // 상수 가능 OK
        case "YES"://문자열 리터럴 가능OK
        // case '1':case ONE:case "YES": 같은말
        //case num//Error. 변수 불가능
        //case 1.0//Error . 실수 불가능
           break;
        case '2'
           break;//switch문 탈출
         default
           break;//안써도 됨. 어차피 마지막
     
      }
  }

 }

이 파트에서 배웠던 함수

  • Math.random() : 0.0 ~1.0 범위에 속하는 하나의 double 형태의 난수를 생성
    0.0<=Math.random()<1.0
    0.0 X 3 <= Math.random() X 3 < 1.0 X 3
    0.0 <= Math.random() X 3 < 3.0
    (int)0.0 <= (int)(Math.random() X 3) <(int) 3.0
    0<= (int)(Math.random() X 3) < 3
  • 문자열.charAt(index) : 문자열의 index번째에 저장된 문자를 가져옴
  • String input변수명 = Scanner 객체 이름.nextLine()
    짝궁 int output변수명 = Integer.parseInt(input변수명)
    String으로 받은 후 숫자로 변환
  • int input변수명 = Scanner 객체 이름.nextInt()//nextFloat()
    바로 정수로 받기 가능하나 연속적인 숫자를 처리하는데 있어서
    어려움이 있으므로 string으로 받는다고 한다.

2. 반복문-for,while,do-while

  • 2.1 for문

    for(타입 ①초기화;②조건식;④증감식){
    ③수행할 문장}

    ①초기화는 둘 이상의 변수가 필요할 때 콤마를 통해 초기화할 수 있으나, 둘 이상의 변수는 타입이 같아야 한다.
    for ( int j=0,i=1; i<10;i++){...}
    But 그러나 위 언급된 초기화, 조건식, 증감식 3가지는 생략이 가능하며
    생략할 경우 무한반복이 진행되므로 수행할 문장에 무한 반복될 for문을 빠져나갈 수 있는 조건문이 들어있다.
    for(;;){...무한 반복을 벗어날 수 있는 문장}
    • 중첩된 for문
      앞서 배웠던 반복문이나 조건문처럼 중첩이 가능하며
      하나의 수행할 문장이 있는 경우 괄호 {}은 생략이 가능하다
      그러나 보기가 어렵기 때문에 써 주는 것이 좋다.
    • 향상된 for문
      향상된 for문이란 배열을 이용하는 것인데 이는 뒤 배열파트에서 자세히 배우지만 대략적인 형태를 알아본다.

      for(타입 변수명;배열 또는 컬렉션){
      반복할 문장
      }

      for(int i=0;i<arr.length;i++)
      { System.out.println(arr[i]);
      }
      //같은 문장
      for(int tmp:arr)
      { System.out.println(tmp)
      }   
      '''
    • 빈문장을 반복하는 방법
    1. for(int i=0;i<10;i++){;}
    2. for(int i=0;i<10;i++);
    3. for(int i=0;i<10;i++){}
  • 2.2 while문
while(조건식_생략불가){
//조건식의 연산결과가 true인 경우 반복될 문장
}

while(i++!=0)//이 조건식을 벗어나면 i는 증가한다.
{

}
while(++j!=0)//먼저 i는 증가한 후 조건식을 만족하는지 평가한다.
{

}
  • 2.3 do-while문

    do{
    }while(조건식) ;

  • 2.4 break문
    break문은 자신이 포함된 가장 가까운 반복문을 벗어난다!!
    혹은 switch문 벗어나기
    "만약에 두개의 반복문을 벗어나야 하는 상황이라면??"
    즉 중첩된 반복을 벗어나야 한다면??
    그럴 때는 이름 붙는 반복문을 사용한다.!!

  • 2.5 continue문
    continue는 continue가 등장하는 순간 그 아래 문장을 실행하지 않고
    반복문의 처음으로 돌아가 다시 실행한다.

    ¹ for(타입 초기화;조건식;증감식)
    ² { A문장;
    ³ if(조건식)
    ⁴ continue;
    ⁵ B문장;}

    순서: 1234 ->1
    혹은 순서: 125 ->1

  • 2.6 이름 붙는 반복문
    이름 붙는 반복문은 살짝 헷갈릴 수 있는게
    이름이 반복문 앞에 있다.
    그래서 저기로 돌아간다는 건가? 라는 의문점이 들 수 있으므로
    오늘 정확히 배우고 간다.

  ¹ outer:
  ² for (타입 초기화;조건식;증감식){
  ³  for(타입 초기화;조건식;증감식{if(조건식)continue;// 3번으로else if(조건식)
  ⁷       coninue outer ;// 2번으로else if(조건식)break; // 13번으로
  ¹⁰   else if(조건식)
  ¹¹     break outer;// 15번으로
  ¹² }
  ¹³
  ¹⁴}
  ¹⁵
profile
꾸준하게 Ready, Set, Go!

0개의 댓글