java 이해용 노트

김제형·2023년 4월 2일

전위 / 후위 연산자

전위 : 값이 증가 한 뒤 연산
후위 : 연산을 한 뒤 값이 증가

int : num1 = 2 , num2 = 3;

++num1 + ++num1 + ++num1 = 12
  3         4        5 
num1을 출력하면 5가 출력된다. 
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
num2++ + num2++ + num2++ = 12
  3         4        5 
마지막 수식에 5로 계산되고 값이 증가해 num2를 출력하면 6이 된다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
num2++ + ++num2 + ++num2 = 14  // num2 = 6
  3         5        6
  • --도 같은 원리로 작동된다.

입출력 클래스

System.out , System.in , System.err

System.in = c언어의 scanf와 같은 기능 값을 프로그램 안에 저장할 때 사용

  • 예외처리구문이 없으면 오류가 나기 때문에 try/catch 문이나 IOException을
    사용하여 예외 처리를 해줘야 한다 .

System.out = c언어의 printf과 같은 기능을 하고 표준 입력 작업을 수행한다.

  • 모니터에 데이터를 출력한 후 줄바꿈 까지 해준다.

System.err = out과 같은 출력을 담당하고 있다

System out과 err의 차이는 버퍼의 속도 차이가 있다.
ex )
System.out.println(1);
System.err.println(1=1);
의 출력값은

1=1
1

이 된다. out , err 둘다 자체적으로 버퍼가 있지만 서로 다른 타이밍에 flush 하기 때문에 out은 출력하기전 한 곳에 모아둔 뒤 출력하지만 err은 크리티컬한 상황(아마 에러나 그런 상황같다.)때문에 바로바로 flush 되기 때문에 출력이 out 보다 빠르게 된 것이다.
그래서 대부분의 자바스크립트 개발자들은 out만 쓰거나 err을 매우 조심히 쓰곤 한다

3. new 함수

new 함수는 새로운 객체를 만드는데 사용한다.

function User(age, sex, month) {
  this.age = age;
  this.sex= sex;
  this.month = month;
}

const user1 = new User(20, 'girl', 8);
//새로운 user를 생성해 user1에 넣는다.

console.log(user1.age);
user1에 저장된 age의 값을 불러온다.

// https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/new

4. Scanner

스캐너의 작동 세부

import java.util.*;
//Scanner를 쓰기 위해 쓰는 선언문
class Main {  
  public static void main(String args[]) { 
    Scanner scanner = new Scanner(System.in);
    //scanner라는 새로운 객체를 생성//프로그램 안에 넣겠다는(System.in)
    System.out.printf("내용 입력 : ");
    
    String input = scanner.nextLine();
    //받은 내용을 'input'에 넣음
    
    System.out.println("출력내용 : "+input);
    //받은 내용을 출력, 하지만 숫자가 아닌 문자열로 저장(출력도 문자열)
    
    int num = Integer.parseInt(input);
    //num에 입력받은 문자열을 넣어 정수로 변환 
    System.out.printf("정수로 변환한 값 :%d",num);
    //입력받은 문자열을 정수로 변환한 값을 출력 
  } 
  //출력값은 다 같아 보이지만 첫번째 출력값은 '문자열'이고 두번째 출력값은 '정수'이다.
}
profile
개발자 지망생

0개의 댓글