7일 차 - 증감 연산자, 비트 연산자, if조건문 (23.01.03)

yvonne·2023년 1월 3일
0

📂Java

목록 보기
7/51

1. 이스케이프 시퀀스

  • 이스케이프 시퀀스는 특수 문자로, 백 슬러시() 뒤에 문자가 오며 특수한 기능을 한다. (화면상의 어떠한 상황 또는 상태를 표현하기 위해 약속된 문자)
  • 이스케이프 시퀀스의 종류
     \b 백스페이스 문자 back
      \t 탭 tab
      \\ 주석처리
      \" 작은따옴표문자
      \" 큰따옴표문자
      \n 개행 line new
      \r carrige return :커서를 처음으로 옮겨서 그 자리에 있던 문자를 지우면서 쓰고 개행도 시킴. 
       - 결과로 cb나옴 (타자기에서 한번씩 치면 땡기면서 한 칸아래 맨 앞줄로 이동하는 것처럼)
  • 예제
public class Hello {

   public static void main(String[] args) {

      System.out.println("\'아아\'") ;

  }

}
  • 출력결과: 아아

2. 전위 증가 연산자와 후위 증가 연산자

  • 전위 증가 연산자 (prefix): ++n / --n
    ++,--가 num앞에 오면 값이 1 증가(감소) 후 바로 연산에 사용
  • 후위 증가 연산자 (postfix): n++ / n--
    ++,--가 num뒤에 오면 값을 먼저 연산에 사용 후 1 증가(감소)
    하나의 실행 단위가 끝나고 난 뒤 1 증가 혹은 감소 값을 대입한다.

3. 비트 연산자

  • 비트 연산자는 각각의 비트별로 진행된 연산 결과를 묶어서 하나의 연산 결과로 반환
    • &(AND): 모두 1이면 1, 하나라도 0이면 0
    • |(OR): 둘 중에 하나라도 1이면 무조건 1, 나머지는 0
    • ^(XOR): 둘이 서로 같으면 0, 다르면 1
    • ~(NOT): 결과값과 반대되는 수 출력 1은 0, 0은 1

4. 쉬프트 연산자

  • 대입연산이 아니기때문에 num의 공간에 값이 대체 되는 것이 아니라 출력결과만 반환되는 연산이다.
    • <<: 좌측으로 한 칸 비트 이동 (2의n승 만큼 값 변함 / 2배 증가)
    • >>: 우측으로 한 칸 비트 이동 (2의n승 혹은 2의 n승분의 1 / 값을 2로 나눈 결과)
    • 부호비트는 보존해야함 -> 양수는 0, 음수는 1


5. if조건문

  • if조건문: 조건을 확인하고 true면 {}중괄호 안의 내용을 실행하고, 아니면 빠져나간다.
if(n1 < n2) { // if(boolean 타입을 받는게 와야한다.)

     System.out.println("n1 > n2 is true"); 
     //true면 실행, false면 실행안하고 빠져나감.

}
if(n1 < n2) 
System.out.println("n1 > n2 is true");

//if문에 속한 문장이 하나일 경우 중괄호 생략 가능 but 가능하면 쓰자.

  • if~else조건문: if문의 조건이 false일 경우 else로 가서 {}중괄호 안의 내용을 실행한다. 반드시 if나 else 둘중하나는 실행하게 되어있다.
if(n1 == n2) {
System.out.println("n1 == n2 is true"); 
//true면 실행 후 조건문을 빠져나감

}else {
System.out.println("n1 == n2 is false"); 
//false면 실행 후 조건문을 빠져나감

}

//if절 또는 else 절에 속한 문장이 하나일 경우 중괄호 생략 가능함

  • if~else if~else조건문: if문이 false이고, 검사하고 싶은 조건이 많은 경우에는 else if를 여러번 사용하여 모든 조건을 검사할 수 있다.
    모두 false인 경우 if - else문과 마찬가지로 마지막에는 else로 넘어간다.
public class Hello {

public static void main(String[] args) {

   int num = 120;

 

if (num <0)

     System.out.println("0미만");

else if(num <100)

     System.out.println("0이상 100미만");

else

    System.out.println("100이상"); 
    //모든 if와 else if 문이 false면 else를 실행

   }

}
  • 출력결과: 100이상


6. 아래의 프로그램을 짜시오.

  • 1) 국어:80 수학:80 영어:60
    평균을 출력하고, 평균에 따른 수우미양가를 출력하시오
 public class IEBasic {

	public static void main(String[] args) {

		int kor = 80;
		int mat = 80;
		int eng = 60;
		double avg = ((double) kor + mat + eng) / 3; 
        // double을 붙이거나 3.0으로 변경해도 double로 자동 형 변환 됨
		System.out.println(avg);

		if (avg >= 90) {
			System.out.println("수");
		} else if (avg >= 80) {
			System.out.println("우");
		} else if (avg >= 70) {
			System.out.println("미");
		} else if (avg >= 60) {
			System.out.println("양");
		} else {
			System.out.println("가");
		}
	}

}
  • 출력결과:

  • 2) 80, 33 ,55 중 최대값을 출력하시오.
public class IEBasic {

	public static void main(String[] args) {

		int a = 80;
		int b = 33;
		int c = 55;

		if (a > b && a > c) {
			System.out.println("a:" + a);
		} else if (b > c && b > a) {
			System.out.println("b:" + b);
		} else {
			System.out.println("c:" + c);
		}

	}

}
  • 출력결과:


  • system.out.print
    * 형식(int, float, double 등)에 구애받지 않는 문자를 그대로 출력하고 싶을 때 사용
     * 엔터 입력시 버퍼(buffer)에 \n(개행문자)는 포함이 안되므로 줄바꿈 필요 없을 때 사용
  • system.out.println
    * 형식(int, float, double 등)에 구애받지 않는 문자를 그대로 출력하고 싶을 때 사용한다.
     * 차이점은 엔터 입력시 버퍼(buffer)에 \n(개행문자)가 같이 들어간다. 
       (엔터 누르는 순간 엔터도 입력된걸로 간주)
  • system.out.printf
    * 형식을 신경써야할 때 사용(int, long, float, double 등)
     * 엔터 입력시 버퍼(buffer)에 \n(개행문자)는 포함 안됨.
profile
개발 연습장

0개의 댓글