형변환 / printf() / Scanner

서지우·2023년 7월 3일
0

JAVA

목록 보기
5/28

형변환(Casting)

형변환이란?

- 값의 타입을 다른 타입으로 변환하는 것
- boolean을 제외한 7개의 기본형은 서로 형변환이 가능

실습 - ch02 / S01.java

주석으로 설명..

package ch02;

public class S01 {
    public static void main(String[] args) {
        System.out.println(65); //65
        // 형변환
        // 리터럴 앞에 소괄호를 적고
        // 소괄호 안에 타입을 적는다
        // 명시적형변환 -> 가로를 적어서 해주는 것
        System.out.println((char) 65); //A
        // 범위가 적은 타입에서 큰 타입으로 변환 할 때는
        // 보통 문제가 없다
        System.out.println((double) 65);//65.0
        // 범위가 큰 타입에서 적은 타입으로 변환 할 때는
        // 데이터 소실이 일어날 수 있다
        System.out.println((int) 65.1);//65
        // 다른 타입을 계산하게 되면
        // 범위가 큰 타입으로 자동으로 형변환(캐스팅) 된다.
        // 묵시적 형변환 -> 가로를 해주지 않은 것
        System.out.println(3.0 / 2);//1.5
        System.out.println(3.0 / (double) 2);//1.5
        System.out.println(3 / 2.0);//1.5
    }
}

printf()

줄바꿈을 하지 않고, 출력형식 지정가능하다.

println()의 단점 - 출력형식 지정불가

printf() 지시자

실습 - ch02 / S02.java

주석으로 설명..

package ch02;

import java.text.MessageFormat;

public class S02 {
    public static void main(String[] args) {
        String str = "저는 홍길동이고 25세입니다.";
        // String str1 = "저는 " + "고길동" + "이고 " + "35" + "세입니다.";

        String name = "지드래곤";
        int age = 34;

        // 문자열 사이에 변수를 넣고 싶을 때에는 문자열을 더해준다.
        // 보기에 깔끔하지 않고 사용하기 불편하다.
        String str1 = "저는 " + name + "이고 " + age + "세입니다.";
        System.out.println(str1);

        // 형식화된 출력(printf)
        System.out.printf("저는 %s이고 %d세입니다\n", "고양이", 2);
        System.out.printf("\"저는 %s이고 %d세입니다\"\n", "고양이", 2);//"저는 고양이이고 2세입니다"
    
        // 소수점 단위를 제한할 수 있다.
        System.out.printf("%.2f\n", 10.0 / 3); //3.33
        // 잘린 소수점이 0.5이상이면 자동으로 반올림 된다.
        System.out.printf("%.2f\n", 3.666666666); //3.67

        // 문자열 포맷팅(format)이라고 하고 이걸 문자열 보간법(...args)
        String str2 = String.format("저는 %s\n", "홍길동");
        System.out.println(str2);

        String str3 = MessageFormat.format("저는 {0} {1} {0}\n", "다나카", 30);
        System.out.println(str3); //저는 다나카 30 다나카
    }
}

Scanner

Scanner란?

화면으로부터 데이터를 입력받는 기능을 제공하는 클래스

Scanner를 사용하려면

  1. import문 추가
    import java.util.*;
  2. Scanner객체의 생성
    Scanner scanner = new Scanner(System.in);
  3. Scanner객체를 사용

실습 - ch02 / S03.java

주석으로 설명..

package ch02;

import java.util.Scanner;

public class S03 {
    public static void main(String[] args) {

        // 콘솔에 입력을 받을 때 사용한다.
        // 표준 입력장치인 키보드 등의 데이터를 받는다.
        Scanner scanner = new Scanner(System.in);

        // 스캐너에서 nextInt를 사용하면
        // 입력된 값을 int 타입으로 형변환해서 리턴한다.
        // int nextInt = scanner.nextInt();
        // System.out.println("나온 값은 " + nextInt);

        // String next = scanner.next();
        // String next1 = scanner.next();
        // String next2 = scanner.next();
        // System.out.println(next);
        // System.out.println(next1);
        // System.out.println(next2);

        // nextLine은 한 줄 기준으로 데이터를 가져온다.

        String nextLine = scanner.nextLine();
        System.out.println(nextLine);
       

        scanner.close();
    }
}
profile
미래가 기대되는 풀스택개발자 공부 이야기~~

0개의 댓글