ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ch2 자바 변수] 자바의 출력과 사용자 입력
    프로그래밍 언어/JAVA 2022. 6. 6. 22:47
    printf를 이용한 출력

    지금까지 화면 출력에 사용해온 println()은 사용하기 편리하지만 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 업다. 같은 값이라도 다른 형식으로 출력하고 싶을 때, 예를 들어 소수점 둘째자리까지만 출력하거나 정수를 16진수나 8진수로 출력할 때 printf()를 사용하면 된다.

     

    printf()는 '지시자(specifier)'를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다. '지시자'는 값을 어떻게 출력할 것인지를 지시해주는 역할을 한다. 정수형 변수에 저장된 값을 10진 정수로 출력할 때는 지시자 '%d'를 사용하며, 변수의 값을 지정된 형식으로 변환해서 지시자 대신 넣는다. 

     

    System.out.printf("age: %d", age);
    System.out.printf("age: %d", 14);
    System.out.printf("age: 14");
    // "age:14"가 화면에 출력된다.

     

    만일 출력하는 값이 2개라면, 지시자도 2개를 사용해야 하며 출력될 값과 지시자의 순서는 일치해야한다. 개수의 제한은 없다. 

     

    System.out.printf("age: %d year:%d", age,year);
    System.out.printf("age: %d year:%d", 14, 2019);
    // "age:14 year:2019"이 화면에 출력된다.

     

    println()과 달리 printf()는 출력 후 줄바꿈을 하지 않는다. 줄바꿈을 하려면 지시자 '%n'을 따로 넣어줘야 한다.

     

    System.out.printf("age: %d year:%d", age,year);
    System.out.printf("age: %d year:%d%n", age,year);
    // %n이 있으면 출력 후 줄바꿈을한다.

     

    지시자 설명
    %d 10진(decimal) 정수의 형식으로 출력
    %x 16진(hexa-decimal) 정수의 형식으로 출력
    %f 부동 소수점(floating-point)의 형식으로 출력
    %c 문자(character)로 출력
    %s 문자열(string)으로 출력

     

     

    화면으로부터 입력받기

    먼저) 화면으로부터 입력을 받기 위해선 Scanner 클래스가 필요하다.

    따라서 import java.util.Scanner; 한 문장을 추가해준다.

     

    그 다음엔 Scanner 클래스의 객체를 생성한다.

    Scanner scanner = new Scanner(System.in); //Scanner 클래스의 객체 생성

     

    그리고 nextLine()이라는 메서드를 호출하면, 입력대기 상태에 있다가 입력을 마치고 엔터(enter) 키를 누르면 입력한 내용이 문자열로 반환한다.

     

    String input = scanner.nextLine(); // 입력받은 내용을 input에 저장
    int num = Integer.parseInt(input); //입력받은 내용을 int타입의 값으로 변환

     

    만일 입력받은 문자열을 숫자로 변환하려면, Interger.parseInt()라는 메서드를 이용해야 한다. 이 메서드는 문자열을 int 타입의 정수로 변환한다. 

    사실 Scanner 클래스에는 nextInt()나 nextFloat()와 같이 변환없이 숫자로 바로 입력받을 수 있는 메서드들이 있고, 이 메서드들을 사용하면 문자열을 숫자로 변환하는 수고는 하지 않아도 된다.

     

     

    ※ 예제 1번 ※

    package ch2;
    
    import java.util.Scanner;
    
    public class Ex2_10 {
    	public static void main(String[] args) {
    		
    		System.out.println("두자리 정수를 하나 입력해 주세요 : ");
    		Scanner sc = new Scanner(System.in);
    		
    		String input = sc.nextLine();
    		int num = Integer.parseInt(input);// 입력받은 문자열을 숫자로 변환
    		System.out.println("입력내용 : " + num);
    		
    	
    	}
    }

    예제 1번 출력값

     

    반응형

    댓글

Designed by Tistory.