[JAVA] 연산자와 조건문

Updated:

Categories:

Tags: ,

📌 개인적인 공간으로 공부를 기록하고 복습하기 위해 사용하는 블로그입니다.
정확하지 않은 정보가 있을 수 있으니 참고바랍니다 :😸
[틀린 내용은 댓글로 남겨주시면 복받으실거에요]

✨연산자

  1. 산술연산자
    1. +, -, *
    2. 나누기 : /
      1. 정수를 0으로 나누면 에러 발생
      2. 실수를 0으로 나누면 Infinity 발생 → 실무 하다가 infinity가 발생하면 실수를 0으로 나눈 것이 아닌지 의심해보아야 함.
      3. 정수 나눌때 결과 값이 실수인 경우 소수점은 내림으로 적용

        1
        
         **int num1=9/2  //4로 출력됨.**
        
        • 실수를 나눌 때는 상기 코드와 같이 주의해야 함.
        • 하나라도 실수 형태이거나 앞에 (double)을 붙여서 형변환을 시켜줘야 함 .
        • 예제

          image

    3. 나머지 : %
      1. 짝수나 홀수 등을 구할때 등 꽤 많이 사용됨
      2. 정수 % 0 = 오류 발생.
      3. 실수 % 0 = 오류발생
    4. 증감연산자
    5. 복합대입연산자
      1. 자기 자신에 어떠한 값으로 연산하여 갱신해 나갈 때만 사용
      2. 나누기와 나머지는 사용빈도가 낮음.
      3. 예제

  2. 비교 연산자
    1. boolean type으로 평가
    2. 대소 비교 연산자
      1. < =, > = : 사용할 경우 = 는 뒤에 나와야 함.

        대소 비교 연산자 결과
        5 > 3 true
        5 <= 5 true
        3 > 2 true
        2 >= 3 false
      2. 예제 : x = 1보다 크고 5보다 작다 표현할 때

        1
        2
        3
        
         int x = 3;
         System.out.println( 1<x && x<5); // true
         System.out.println(1<x<5); //오류 발생
        
    3. 등가 비교 연산자

      | 등가 비교 연산자 | 결과 | | — | — | | 5 == 3 | false | | 5 == 5 | true | | 3 != 2 | true | | 3 != 3 | false |

      • 문자열에는 (String) == 사용하면 절대 안됨!!!! 💫 .equals()를 사용 해야 함.


  3. 논리 연산자
    1. AND 연산자(&&)
    2. OR 연산자(   )
    3. NOT 연산자 (!) : true와 false 를 반대로 바꾸는 연산자
    4. AND 와 OR은 익숙해져야 하고 실무에서도 자주 사용.



  1. 연산자의 우선순위

  2. 연산자

    1. 💫💫(조건식) ? 참일때 : 거짓일때

콘솔 입출력

  1. 콘솔 출력 메서드
    1. System.out.print()
      1. 줄 바꿈 없이 수행됨
      2. 줄 바꿈을 원할 경우 개행 문자 \n 입력.
    2. System.out.println()
      1. ln은 개행문자를 포함.
    3. System.out.printf()
      1. 지시자를 사용하여 형식대로 출력하기.
      2. 지시자 : 실제로 출력 되는 값이 아니며, 값을 변환해 자신의 위치에 출력해 주는 기능
        | 지시자 | 출력 포맷 | | %b | boolean | | %d | 10진수 | | %o | 8진수 | | %x, %X | 16진수 | | %c | char | | %s | String | | %n | 줄 바꿈 |


  2. 콘솔 입력 기능
    Scanner
    (1) Scanner scanner = new Scanner(System.in);
    (2) Scanner에 에러 발생하면 alt+enter 눌러서 import java.util.Scanner 자동으로 입력됨.

    1) 문자 입력시
    (1) String 변수이름 = scanner.nextLine();
    2) 정수 입력시
    (1) Int 변수이름 = scanner.nextInt();
    (2) 문자열 사용시 오류 발생.
    3) 실수 입력시
    (1) scanner.nextFloat();

조건문

if문

  1. if 문

    1
    
    if (조건문){조건문이 true일때 수행됨.}
    
  2. if-else

    1
    
     if (조건문) {조건문이 true 일때 수행} else {조건문이 false일때 수행}
    
  3. if else-if

    1
    2
    3
    
     if (조건문) {if 조건문이 true 일때 수행}
     else if (조건문) {else if 조건문이 true 일때 수행}
     else {상기 조건문  어느 것도 실행되지 않을  수행}
    
  4. 중첩 if문

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
     if(조건문1){
     			조건문 1 true 일때 수행
     	if(조건문2){
     			조건문 1 2 모두 true일  수행
     	}else{
     			조건문1이 true이고 2 false일  수행
     	}
     }else{
     			조건문 1 false일  수행
     }
    
  5. 예제

    1. 예제 1
      1) 미성년자는 맥주를 살 수 없고, 65세 이상에게 할인한다고 가정할 경우에 아래 코드와 같음

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      
       ```java
       public class Example02 {
           public static void main(String[] args) {
               int age=25;
               if( age >= 65){
                   System.out.println("맥주는 3500원 입니다.");
               } else if (age >=19) {
                   System.out.println("맥주는 4500원 입니다.");
               }else{
                   System.out.println("미성년자는 살 수 없습니다.");
               }
           }
       }
       // 맥주는 4500원입니다.
       ```
      

      2) 만약에 65세가 맥주를 구입한다고 가정할 때 if와 else if 구문이 바뀔 경우 else if 가 실행되지 않아서 3500원에 맥주를 사 먹을 수 없음.

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      
       ```java
       public class Example02 {
           public static void main(String[] args) {
               int age=65;
               if( age >= 19){
                   System.out.println("맥주는 4500원 입니다.");
               } else if (age >=65) {
                   System.out.println("맥주는 3500원 입니다.");
               }else{
                   System.out.println("미성년자는 살 수 없습니다.");
               }
           }
       }
       // 맥주는 4500원입니다.
       ```
              
       - 코드는 위에서 아래로 흐르고 처음 만난 if절이 true라서 할인된 가격에 사먹을 수 없다.
      
    2. 예제 2 (중첩 if문 예제)
      1) 학점 구하기

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      
       ```java
       	       if(score>=90) {              
                   grade="A";
                       if(score>=98){
                           grade+="+";
                       } else if ((score<94)) {
                           grade+="-";
                       }
               }else if(score  >=80){
                   grade="B";
                       if(score>=88){
                           grade+="+";
                       }else if(score<84){
                           grade+="-";
                       }
               }else{
                   grade="C";
               }
       ```
      

switch문

  1. switch문

    1
    2
    3
    4
    5
    6
    
     switch(조건식){
     	case 값1 : 수행될 문장 ;
     		break;
     	case 값2 : 수행될 문장 ;
     		break;
     	default : 조건식의 결과와 일치하는 case문 없을  수행되는 문장;
    

    1) 조건식의 계산결과와 일치하는 case 문으로 이동 후 break문을 만날 때 까지 수행
    (break 문이 없으면 switch문의 끝까지 진행된다. ⇒ 빼먹지 않도록 주의)
    2) if 문의 조건식과 달리, 조건식의 계산결과가 int범위 이하의 정수 또는 문자열만 가능
    - 즉, byte, short, char, int
    3) default 문은 적지 않아도 됨.
    4) if문처럼 중첩 가능

  2. 예제 1) 학점 구하기

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
     ```java
        switch (score){
                 case 100 : case 99 : case 98: case 97: case 96:
                 case 95:   case 94:  case 93: case 92: case 91:
                 case 90:
                     grade ="A";
                     break;
                 case 89 : case 88 : case 87: case 86: case 85: 
                 case 84:  case 83: case 82: case 81: case 80:
                     grade ="B";
                      break;
             default:
                 grade="c";
         }
     ```
        
     (1) switch는 학점을 일일이 적어줘야 함<br/>
     (2) 그러나 조금만 변경하면 간단히 줄일 수 있음 ⇒ 이런 식으로 생각하는 습관 들이기<br/>
        
     ```java
             switch (score/10){
                     case 10 : case 9 : 
                         grade ="A";
                         break;
                     case 8 : 
                         grade ="B";
                          break;
                 default:
                     grade="c";
             }
     ```
    

Comment

  • 배운내용 : 연산자와 조건문 그리고 조건문 연습문제
  • 조건문 연습문제도 풀었는데 틀렸거나 헷갈리는 부분은 따로 정리할 예정
  • 🍒내가 2주 가량 혼자서 예습했던 부분을 엄청 빠른 속도로 진도를 나가는게 느껴져서
    영혼이 빠져나갈 것 같지만 멘탈 붙잡고 공부해야 하는데 나중에는 어쩌지 하는 걱정이 계속 들었고
    자습을 자바의 정석으로 했었는데 알고보니 처음 보기에는 어려운 책이라고 했다.. 어쩐지 페이지 넘기기가 힘들더라니..ㅎ
    그래도 예습을 해서 이 정도로 버텼던 것 아닐까 싶고 여기서 빨리 넘어가서 놓쳤던 부분은 다시 따로 공부해서 또 글 남기면 되니까!
    완벽하게 하고 넘어갈 수 는 없다고 생각하니까 마음의 짐이 조금 덜어졌다.
    아직 이틀차지만 힘내보기










JAVA-Learn 카테고리 내 다른 글 보러가기

Leave a comment