[JAVA] Scanner - next()와 nextLine()의 차이

min82·2023년 7월 28일
0

JAVA

목록 보기
2/8

next() - 문자 또는 문자열을 공백을 기준으로 한단어 또는 한문자씩 입력 받는다.

nextline() - 문자 또는 문장 한라인 전체를 입력 받는다.

✅ next()

  • 공백을 기준으로 한 단어 또는 한 문자씩 입력받는다.
  • 즉, 빈칸으로 분리하여 입력 받을 때 사용.
  • 개행 문자를 취급하지 않는다.
import java.util.Scanner;

public class Next_NextLine {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String nextExample;
        nextExample = scanner.next();
        System.out.print(">>> " + nextExample);
    }
}

Hello, world! 중 처음 빈 칸전까지인 Hello,가 출력된 것을 알 수 있다.


✅ nextLine()

  • 문자 또는 문장 한라인 전체를 입력 받는다.
  • 즉, Enter(엔터)를 누르기 전까지의 문장 전체를 입력받는다.
import java.util.Scanner;

public class Next_NextLine {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String nextLineExample;
        nextLineExample = scanner.nextLine();
        System.out.println(">>> " + nextLineExample);

    }
}

출력값을 보면 입력 받은 문장 전체를 확인할 수 있다.


✅ next() 사용 예제

  • 아래의 그림과 같은 사칙 연산을 입력 받아 계산하는 프로그램을 작성하고자 한다.

import java.util.Scanner;

public class SmallCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        boolean c = true;

        while (true) {
            System.out.print(">>연산식: ");
            double num1 = scanner.nextDouble();
            String operator = scanner.next();
            double num2 = scanner.nextDouble();

            switch (operator) {
                case "+":
                    System.out.println(num1 + num2);
                    break;
                case "-":
                    System.out.println(num1 - num2);
                    break;
                case "*":
                    System.out.println(num1 * num2);
                    break;
                case "/":
                    if (num2 == 0){
                        System.out.println("0으로 나눌 수 없습니다.");
                    } else {
                        System.out.println(num1/num2);
                    }
                    break;
                case "%":
                    System.out.println(num1%num2);
                    break;
                case "?":
                    System.out.println((int)(num1/num2));
                    break;
                default:
                    System.out.println("다시 입려하시오. ");
            }

            System.out.print(">>계속하시겠습니까?(y/n):");
            String choice = scanner.next();
            if (choice.equals("n")){
                break;
            }
        }
        scanner.close();
        System.out.println("종료되었습니다.");
    }
}

결론

입력 한 번에 여러 단어나 문자를 입력 받고 싶을 때는 next(), 문장 전체를 입력 받을 때는 nextLine()을 사용하자 👍👍


Reference

https://devlog-wjdrbs96.tistory.com/80

profile
8282

0개의 댓글