Programming Language/Java

변수(Variable) (3) - Scanner, 형변환(casting), 출력 메소드, escape 문자

Ma_Sand 2022. 2. 21. 00:58
반응형

1. Scanner(화면에서 입력 받기)

 (1) Scanner Class

    : 사용자로부터 입력되는 정수나 실수, 문자열을 처리하는 클래스

 

 (2) import 작성

import java. util.Scanner;

 

 (3) Scanner 생성

Scanner sc = new Scanner(System.in);

 

 (4) 키보드 입력값 받기

   - 정수: sc.nextInt();

   - 실수: sc.nextFloat();, sc.nextDouble();

   - 문자열: sc.next();, sc.nextLine();

 

 **입력받을 때, next()는 띄어쓰기를 입력할 수 없다. 왜냐하면 띄어쓰기를 구분인자로 생각하여 각각 저장하기 때문이다. 이에 반해 nextLine();은 문자열에 띄어쓰기가 가능하다.

    

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

class Scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        String name;
        String age;
        
        System.out.println("당신의 이름은 무엇인가요?");
        name = sc.next();
        System.out.println(name + "이군요!");
        
        System.out.println("당신은 몇 살인가요?");
        sc.nextLine();   // 남아있는 엔터 날리기
                         //  ㄴ엔터를 날리지 않으면 질문들이 다 한번에 출력됨
        System.out.println(age + "살이군요!");
    }
}

 

▼실행결과

당신의 이름은 무엇인가요?
홍길동이군요!
당신은 몇 살인가요?
21살이군요!

 

 

 

2. 형변환(casting)

  : 변수나 상수의 타입을 다른 타입으로 변환하는 것(boolean 제외)

 

 (1) 값 처리의 원칙

    - 같은 종류의 자료형만 대입 가능

    - 같은 종류의 자료형만 계산 가능

    - 계산 결과도 같은 종류의 값이 나와야 한다.

ex)

(int) 123456 → (double) 123456.0
(char) 'D' → (int) 68
(float) 2.31f → (int) 2

 

 (2) 자동 형변환

    : 컴파일러가 자동으로 값의 범위가 작은 자료형을 값의 범위가 큰 자료형으로 변환시켜준다.

기본형의 자동 형변환이 가능한 방향

int i = 10;
double d = 3.14 + i;
double d = 3.14 + (double) i;
double d = 3.14 + (double) 10;
double d = 3.14 + 10.0;
double d = 13.14;

 

 (3) 강제 형변환

    : 값의 범위가 큰 자료형을 값의 범위가 작은 자료형으로 변환

   - 강제 형변환 시 데이터 손실이 일어날 수 있다.

 

 

 

3. 출력 메소드

 (1) System.out.print()

    : () 안의 변수나 문자, 숫자, 논리 값을 출력해준다.

 

 (2) System.out.println()

    : print문과 출력은 동일한데 자동으로 줄바꿈을 하고 출력해준다.

 

 (3) System.out.printf()

    : 정해진 형식에 맞춰서 그에 맞는 값(변수)을 줄바꿈하지 않고 출력해준다. ("%형식", 변수 등)

   a. 표현법

     : System.out.printf(출력하고자 하는 형식, 출력하고자 하는 값);

   b. printf의 f

     : format(형식)을 의미

       → 줄바꿈을 하지 않기 때문에 따로 '\n'을 추가해야 한다.

          ("문자열 안"에 값이 들어갈 자리를 만들어주어야 한다.)

 

▽자주 사용되는 printf() 지시자

%b boolean 형식으로 출력
%d 10진수(decimal) 형식으로 출력
%o 8진수(octal) 형식으로 출력
%x, %X 16진수(hexa-decimal) 형식으로 출력
%f 부동 소수점(소수점 아래 6자리 실수, floating-point) 형식으로 출력
%e, %E 지수(exponent) 표현식의 형식으로 출력
%c 문자(character)로 출력
%s 문자열(string)로 출력

 

   - 정렬 방법

    · %4d: 4칸을 확보하고 오른쪽 정렬

    · %-4d: 4칸을 확보하고 왼쪽 정렬

    · %3f: 소수점 아래 3자리까지만 표시

 

public class cd {
	public void ex() {
    	int x = 10;
        int y = 20;
        
        System.out.printf("x = %d, y = %d \n", x, y);
        //x = 10
        //y = 20
        
        System.out.printf("%d + %d = %d \n", x, y, (x + y));
        //10 + 20 = 30
        
        System.out.printf("%5d \n", x);    //   10
        System.out.printf("%-5d \n", y);   //20   
    }
}

 

4. escape 문자

특수문자 문자 리터럴 비고
tab \t 정해진 공간 만큼 띄어쓰기
new line \n 출력하고 다음 라인으로 옮김
역슬래쉬 \\ 특수문자 사용 시 백슬래쉬(\)를 넣고 특수문자를 넣어야 함
작은 따옴표 \' "
큰 따옴표 \" "
유니코드 \u 유니코드를 표시할 때 사용

 

반응형