<조건연산자>
int num1 = 30, num2 = 20;
System.out.println( num1<num2 ? "num1이 작다" : "num1이 작지않다" );
👉🏻 num1이 작지않다 ➡ 크거나 같다
<Scanner>
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
System.out.print("숫자를 입력하세요 : "); //print를 사용해야 입력받을 위치가 :(콜론)옆으로 생김
int data = sc.nextInt(); //키보드에서 입력된 내용을 int형으로 받아들이겠다.
System.out.println("입력된 값 : " + data);
<Scanner 문자열 입력 처리>
Scanner sc = new Scanner(System.in);
String str1, str2;
System.out.print("Input String : ");
//nextLine()
str1 = sc.nextLine();
str2 = sc.nextLine();
👉🏻
---입력---
Input String : Apple Banana
Cherry
---출력---
str1 : Apple Banana
str2 : Cherry
//next()
str1 = sc.next();
str2 = sc.next();
👉🏻
---입력---
Input String : Apple Banana
---출력---
str1 : Apple
str2 : Banana
<nextInt() 후 nextLine() 사용시 문제 해결하기>
Scanner sc = new Scanner(System.in);
System.out.print("Input Number : ");
int num = sc.nextInt(); ➡ 입력받은 데이터에서 정수값만 읽히고 \n은 남음
sc.nextLine(); 👉🏻 남은 \n 제거
sc.skip("[\\r\\n]+") 👉🏻 모든 \r, \n 제거
System.out.print("Input String : ");
String str = sc.nextLine(); ➡ 코드 실행되면서 남은 \n가 읽혀 입력받지 않고 그대로 실행 끝
(조건식) ? (true일 때 반환할 값) : (false일 때 반환할 값)
키보드로 입력한 내용을 프로그램 데이터로 가져오는 입력기능 클래스
현재 소스코드에서 Scanner라는 이름으로 java.util.Scanner를 대신해서 사용하겠다 👉🏻 ctrl + shift + o import 최적화
[클래스명][변수명]; 👉🏻 참조형 변수 선언
[변수명] = new [클래스명]( [필요한 데이터] ); 👉🏻 객체 생성, 클래스 기능 활성화
📄 example
Scanner sc;
sc = new Scanner( System.in );
➡ Scanner sc = new Scanner( System.in );
✔ System.in
키보드랑 연결된 입력기능 활성화
키보드에서 입력되는 내용은 문자로 인식됨
✔ sc.close();
System.in으로 인해 입력을 항상 대기중인 상태로 유지됨 👉🏻 메소드 종료 전 사용종료를 알려줘야 함
nextLine();\n(엔터값)을 기준으로 입력한 한 줄을 하나의 데이터로 판단 👉🏻 띄어쓰기가 필요한 문장 사용시 유용next(); \n \t를 기준으로 하나의 데이터로 판단❗ nextInt(); 사용후 nextLine(); 사용시의 문제
nextInt()로 입력받으면 임시저장소(buffer)에 입력된 213\n 중 정수 213만 가져가고 \n은 남겨져 있게 됨 ➡ nextLine()은 \n을 만나면 실행을 종료하므로 새로운 입력을 받지 않고 그대로 다음 코드로 넘어가게 됨
\n 을 지움sc.skip("[\\r\\n]+") 코드를 추가해 buffer에서 \r \n을 모두 제거char은 Scanner로 직접 입력받을 수 없음 👉🏻 String으로 입력받아 그 중 n번째 글자를 꺼내기
String str = "Apple Banana";
char test = str.charAt(3);
➡ 'l' 출력
---------------------------------
Scanner sc = new Scanner(System.in);
String data = sc.nextLine();
System.out.println( data.charAt(0) );
➡ String으로 입력받고 n번째 문자 출력하기
---------------------------------
Scanner sc = new Scanner(System.in);
char ch = sc.nextLine().charAt(3);
➡ char로 한번에 입력 받기
===== 입력 =====
Input Name : Alice
Input Age : 33Input Gender : F
Input Korean : 100
Input English : 99
Input Mathematics : 97===== 출력 =====
이름 나이 성별 국어 영어 수학 총점 평균
Alice 33 F 100 99 97 296 98.666666667
Scanner sc = new Scanner(System.in);
System.out.println("===== 입력 =====");
System.out.print("Input Name : "); //이름
String name = sc.nextLine();
System.out.print("Input Age : "); //나이
int age = sc.nextInt();
sc.nextLine(); ➡ 입력버퍼 비우기
System.out.print("\nInput Gender : "); //성별
String gender = sc.nextLine(); ➡ String ver.
char gender = sc.nextLine().charAt(0); ➡ char ver.
System.out.print("\nInput Korean : "); //국어
int kor = sc.nextInt();
System.out.print("Input English : "); //영어
int eng = sc.nextInt();
System.out.print("Input Mathematics : "); //수학
int math = sc.nextInt();
int sum = kor + eng + math; //총점
double ave = sum / (double)3//평균
개행문자에 대한 처리가 운영체제에 따라 다름
\r CR, Carriage Return ( ASCII 13 )
Apple
_
👆🏻커서 위치
\n LF, Line Feed, New Line (ASCII 10)
Apple
_
커서 위치👆🏻
\r\n 두 문자를 합쳐서 줄바꿈으로 사용 👉🏻 엔터를 치면 2byte 잡아먹음\n \r 이었는데 요즘엔 \n' ' (ASCII 32)
'\n' (ASCII 10)
'\t' (ASCII 9)
print formatted 출력 형식을 지정하여 화면에 데이터 출력
System.ou.printf( "서식문자를 포함하는 문자열" , [서식문자를 대체할 데이터] , ...);
%d 10진수 정수 형식으로 표형%f 실수 형식 표현%s 문자열 형식 표현%c 단일 문자 형식 표현System.out.printf("총점 %d점", 289);
➡ 총점 289점
System.out.printf("%s %d", "HIHI", 656);
➡ HIHI 656
💡 %와 형식 지정글자 사이에 숫자를 이용하여 자릿수를 지정
System.out.printf("%9.4f", 23.45);
➡ [ 23.4500] //전체 9자리 확보하고 소수점 4자리 유지
System.out.printf("%.2f", 89.6666666667);
➡ 89.67
변환된 문자열을 String 타입으로 반환
String.format( "서식문자 포함 문자열" , [서식문자를 대체할 데이터] , ...);
String str = String("%.2f", 89.66666666667);
System.out.println(str);
➡ 89.67