자바의 정석 Chapter 02 변수 - 예제 코드

Taww·2021년 12월 28일
0

두 변수의 값을 교환하는 예제 (p.24)

public class Ex2 {
 public static void main(String[] args) {
   int x = 10, y = 20;
   int tmp = 0;
   
   System.out.println("x: " + x + " y: " +y);
		
   tmp = x;
   x = y;
   y = tmp;
		
   System.out.println("x: " + x + " y: " +y);
 }
}

실행결과

변수 x 와 y의 값을 서로 바꾸려면 변수 하나가 더 필요하다.

그 이유는 = 대입연산자의 성질 때문이다. 대입 연산자는 값을 단순히 넣는 다는 개념을 넘어서 자기변수의(x) 값을 유지하면서 대입하려는 변수에(y) 값을 복사하는 시스템이기 때문에, 대입하려는 변수(y)에 있던 값을 따로 빼 놓지 않으면 y = x라는 문장으로 인해 y에 원래 들어있던 값이 사라지게 된다.
이를 방지하기 위해서 tmp라는 임시 변수를 하나 사용해 그 변수에 y값을 넣고 x값을 y에 복사한 뒤 tmp에 넣어뒀던 값을 다시 x에 넣어 교환을 성사시킨다.

문자 리터럴과 문자열 리터럴 예제 (p.35)

class StringEx{
   public static void main(String[] args) {
   String name = "Ja" + "Va";
   String str = name + 8.0;
 
   System.out.println(name);
   System.out.println(str);
   System.out.println(7 + " ");
   System.out.println(" " + 7);
   System.out.println(7 + "");
   System.out.println("" + 7);
   System.out.println("" + "");
   System.out.println(7+ 7+ "");
   System.out.println("" + 7 + 7);
  }
 }

실행결과

여기서 나온 개념은 이것이다.
문자열 + any type = 문자열 + 문자열 = 문자열
any type + 문자열 = 문자열 + 문자열 = 문자열

덧셈 연산자는 왼쪽에서 오른쪽의 방향으로 연산을 수행하기 때문에 결합순서에 따라 결과가 달라진다는 것에 주의하자 !

그리고 7과 같은 기본형 타입의 값을 문자열로 변환할 때는 아무런 내용도 없는 빈 문자열("")을 더해주면 된다는 것도 알아두자.

Scanner 예제 (p.40)

import java.util.*; // Scanner를 사용하기 위해 추가

class ScannerEx{
   public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      
      System.out.print("두 자리 정수를 하나 입력하시오");
      int num = Scanner.nextInt();
      
      System.out.println("입력내용:" + num);
      System.out.printf("num = %d%n",num);
    }
  }

실행결과

이 예제에서 주의할 점은
import java.util.*; 문을 맨 위에 꼭 써야 한다는 것과
Scanner 클래스를 이용할 때는 객체를 생성해서 사용해야 한다는 것이다.

  • nextLine()이라는 메서드로 문자열을 입력 받은 뒤
    integer.parseInt()라는 메서드를 이용해서 숫자로 변환하는 방법도 있다. 이 메서드는 문자열을 int타입의 문자열로 반환한다.
profile
미지근러,,

0개의 댓글