Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 9 JShell에서 스크래치 변수(Scratch Variable)를 만드는 방법

JShell은 Java 9에서 도입된 REPL(Read-Eval-Print Loop) 대화형 도구로, 변수 선언, 문장(statement), 표현식(expression) 등 간단한 자바 코드를 main() 메서드 없이도 실행하고 평가할 수 있게 해줍니다.

JShell의 스크래치 변수란?

JShell에서 스니펫(snippet)이 반환하는 값은 별도의 설정 없이 자동으로 스크래치 변수(scratch variable)에 저장됩니다. 이러한 스크래치 변수는 달러 기호($)로 표현됩니다.

표현식의 결과를 변수에 직접 할당하지 않으면, JShell이 자동으로 스크래치 변수를 생성합니다. 덕분에 나중에 해당 표현식의 출력 결과를 다시 활용할 수 있습니다.

스크래치 변수 생성 예제

아래 코드 스니펫에서는 여섯 개의 스크래치 변수($1 ~ $6)가 자동으로 생성되었습니다.

jshell> 3+7
$1 ==> 10

jshell> 9-2
$2 ==> 7

jshell> 4*4
$3 ==> 16

jshell> 12/4
$4 ==> 3

jshell> 19%5
$5 ==> 4

jshell> String.valueOf($2)
$6 ==> "7"

위 예제에서 주목할 점은 마지막 줄입니다. 이미 생성된 스크래치 변수 $2를 참조하여 새로운 값("7")을 얻고, 그 결과가 다시 $6이라는 스크래치 변수에 저장되었습니다.

일반 변수와 스크래치 변수의 차이

아래 코드에서는 nonScratch라는 변수를 생성했습니다. 이름에서 알 수 있듯이 이 변수는 사용자가 명시적으로 선언했기 때문에 $ 기호로 표현되지 않으며, 따라서 스크래치 변수가 아닙니다.

jshell> String nonScratch = "Tutorialspoint"
nonScratch ==> "Tutorialspoint"

/vars 명령어로 변수 확인하기

JShell 세션에서 /vars 명령어를 실행하면, 현재 세션에 존재하는 모든 변수를 확인할 수 있습니다. 스크래치 변수와 일반 변수(논스크래치 변수)가 함께 출력됩니다.

jshell> /vars
|     int $1 = 10
|     int $2 = 7
|     int $3 = 16
|     int $4 = 3
|     int $5 = 4
|     String $6 = "7"
|     String nonScratch = "Tutorialspoint"

정리

- JShell은 표현식의 결과를 자동으로 $1, $2처럼 번호가 매겨진 스크래치 변수에 저장합니다.
- 스크래치 변수는 나중에 다른 표현식에서 재사용할 수 있습니다.
- 사용자가 직접 선언한 변수는 $ 기호 없이 저장됩니다.
- /vars 명령어로 세션 내 모든 변수 목록을 확인할 수 있습니다.