๐ฃ ๋ฌธ์ ์ํฉ
์ซ์ ๋ ๊ฐ์ ์ฐ์ฐ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ฐ์ฐ์์ ๋ฐ๋ผ ๊ณ์ฐ์ ์ํํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๊ณผ์ ๋ฅผ ํ๊ฒ ๋์๋ค. ์ซ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ ์ซ์๊ฐ ์๋ ์ ๋ ฅ์ด ๋ค์ด์ฌ ๋๋ฅผ ๋๋นํด ์์ธ ์ฒ๋ฆฌ๋ฅผ try-catch๋ฌธ์ผ๋ก ํด๋ณด์๋ค. ์๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ์ง๋ง ์๋ชป๋ ์ ๋ ฅ์ด ๋ค์ด์ค๋ฉด ๊ทธ๋ค์๋ถํฐ๋ ์ ๋ ฅ์ ๋ฐ์ง ๋ชปํ๊ณ ์๋์ ๊ฐ์ด "์ซ์๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์: ์๋ชป๋ ์ ๋ ฅ์ ๋๋ค"๋ง ๊ณ์ํด์ ์ถ๋ ฅ๋์๋ค.
import java.util.Scanner;
public class ExampleClass {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ");
try {
System.out.println(sc.nextDouble());
} catch (Exception e) {
System.out.println("์๋ชป๋ ์
๋ ฅ์
๋๋ค.");
}
}
}
}
// ์ถ๋ ฅ๊ฐ
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: 5
5.0
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: k
์๋ชป๋ ์
๋ ฅ์
๋๋ค.
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ์๋ชป๋ ์
๋ ฅ์
๋๋ค.
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ์๋ชป๋ ์
๋ ฅ์
๋๋ค.
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ์๋ชป๋ ์
๋ ฅ์
๋๋ค.
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ์๋ชป๋ ์
๋ ฅ์
๋๋ค.
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ์๋ชป๋ ์
๋ ฅ์
๋๋ค.
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ์๋ชป๋ ์
๋ ฅ์
๋๋ค.
...
(๋ฌดํ ๋ฐ๋ณต)
...
๐ง ํด๊ฒฐ ๊ณผ์
์ ์ด๋ ๊ฒ ๋๋ ๊ฑด์ง ๊ถ๊ธํด์ ๊ตฌ๊ธ์ "while๋ฌธ์์ try catch"๋ผ๊ณ ๊ฒ์ํด ์๋ ๊ธ์ ๋ฐ๊ฒฌํ ์ ์์๋ค.
์ด ๊ธ์์ "scanner.nextLine()์ผ๋ก ๋น์ ๋๋ ํด๊ฒฐ๋์ต๋๋ค"๋ผ๋ ๋๊ธ์ ๋ณด๊ณ ์ด๋ฅผ ์ฝ๋์ ์ ์ฉํด๋ณด์๋ค.
import java.util.Scanner;
public class ExampleClass {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ");
try {
System.out.println(sc.nextDouble());
} catch (Exception e) {
sc.nextLine(); // Scanner ๋น์ฐ๊ธฐ
System.out.println("์๋ชป๋ ์
๋ ฅ์
๋๋ค.");
}
}
}
}
// ์ถ๋ ฅ
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: 5
5.0
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: k
์๋ชป๋ ์
๋ ฅ์
๋๋ค.
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: 5
5.0
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์:
์ ๋๋ค. ๊ทธ๋ฐ๋ฐ sc.nextLine()์ด ์ด๋ป๊ฒ Scanner๋ฅผ ๋น์ธ ์๊ฐ ์๋ ๊ฑด์ง ์ดํด๊ฐ ๊ฐ์ง ์๊ณ ๊ถ๊ธํด์ก๋ค. ๊ทธ๋์ ์ด ํจ์๊ฐ ์ด๋ค ๊ธฐ๋ฅ์ ํ๋์ง ํ์ธํด๋ณด๊ธฐ ์ํด์ sc.nextLine()์ System.out.println();์ผ๋ก ๊ฐ์ธ๋ณด์๋ค.
import java.util.Scanner;
public class ExampleClass {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ");
try {
System.out.println(sc.nextDouble());
} catch (Exception e) {
System.out.println(sc.nextLine()); // Scanner ๋น์ฐ๊ธฐ
System.out.println("์๋ชป๋ ์
๋ ฅ์
๋๋ค.");
}
}
}
}
// ์ถ๋ ฅ
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: 5
5.0
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: k
k
์๋ชป๋ ์
๋ ฅ์
๋๋ค.
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: 5
5.0
์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์:
์ถ๋ ฅ ๊ฐ์ ๋ณด๋ sc.nextDouble()์์ ์๋ฌ๊ฐ ๋ฐ์ํด ๋ฐ์ง ๋ชปํ ์ ๋ ฅ๊ฐ์ sc.nextLine()์์ ๋ฐ์์ฃผ๋ ๊ฒ ๊ฐ์๋ค. ํ์ง๋ง ํ์คํ๊ฒ ์๋ฌธ์ด ํด๊ฒฐ๋์ง ์์ ๋ ์ฐพ์๋ณด๊ฒ ๋์๊ณ ์๋ ๊ธ์ ์ฐพ์ ์ ์์๋ค.
sc.nextInt()์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ๋ฒํผ์์ ๊ฐ์ด ๋น ์ ธ๋๊ฐ์ง ์๊ฒ ๋๋ค๊ณ ํ๋ค. sc.nextDouble()์์๋ ๋ง์ฐฌ๊ฐ์ง์ผ ๊ฒ ๊ฐ๋ค. ๋ฒํผ๊ฐ ๋ฌด์์ธ์ง ์์์ผ ์๋ฒฝํ๊ฒ ์ดํดํ ์ ์์ ๊ฒ ๊ฐ๋ค. ๊ทธ๋์ ๋ฒํผ๋ฅผ ๊ฒ์ํด ์๋ ๊ธ์ ์ฐพ์๋ค.
๋ฒํผ๋ ๋ฐ์ดํฐ๋ค์ด ์์๋ก ๊ฑฐ์ณ๊ฐ๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์์ด๊ณ ํค๋ณด๋๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ค๊ฐ ์ํฐํค๊ฐ ์ ๋ ฅ๋๋ ์๊ฐ ๋ฐ์ดํฐ๋ค์ด ๋ฒํผ๋ก ์ด๋ํ๋ค๊ณ ํ๋ค.
๐ ๊ฒฐ๋ก
Scanner ํด๋์ค์ nextDouble, nextInt, next, nextLine ํจ์๋ ๋ฒํผ์์ ์์๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋๋ฐ ๋ฒํผ์์ ๊ฐ์ฅ ์์ ์๋ ๋ฐ์ดํฐ๊ฐ ํจ์์ ๋ง์ง ์๋ค๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๊ฒ ๋๊ณ ๋ฒํผ์๋ ๋ณ๋์ด ์๋ค. ๊ทธ๋์ ๋ฒํผ์์ ๋ฐ์ดํฐ ํ ๊ฐ๋ฅผ ๊ฑด๋๋ฐ๊ณ ์ ๋ ฅ์ ๋ฐ์ผ๋ ค๋ฉด next ๋๋ nextLine ํจ์๋ก ๋ฐ์ดํฐ ํ ๊ฐ๋ฅผ ๋ฐ์์ผ ํ๋ค.