(정수)
byte -> short -> int -> long
(실수)
float -> double
클래스의 첫 번째 문자는 대문자 사용
상수는 대문자로 표기
레퍼런스는 뭔가 하나가 있고 뭘 가리키면 뭔가가 있는 느낌이다. (나의 생각)
그림으로 표현하면, ( {adress} ㅡ> ㅇ ) 이런 식으로 가리키는 느낌
자바에서 문자열과 기본타입의 +연산이 실행되면 문자열로 바뀐다.
(이유 : 자바에서는 문자열이 기본 타입에 속해 있지 않기 때문이다)
변수 : 데이터를 저장하는 공간 ( 변수 선언 : int price; )
리터럴 : 값 그자체
long 타입으로 지정하려면 숫자 뒤에 L 또는 l을 붙이면 된다.
숫자 뒤에 f나 F를 붙이면 float, D나 d를 붙이면 double 타입으로 강제 변환.
null은 기본 타입에 사용될 수 없고 객체 레퍼런스에 대입된다.
int n = null; // 오류, 기본 타입에 null 값 지정 안됨
String str = null; // 정상
Scanner 클래스는 사용자가 입력하는 키 값을 공백 문자 ('', '\t', '\n')을 기준으로 분리하여 토큰 단위로 읽는다.
String nextLine() : 엔터치기 전까지 모든 것을 가져와 라는 느낌이며, 공백이 낀 문자열을 입력받기 위해서도 사용합니다.
String next()
산술 연산자는 +, -, *, /(나누기), %(나머지)
%연산자는 홀,짝 구분 및 배수 확인에 자주 활용된다.
// 간단한 시간을 나타내는 code
int time = sc.nextInt();
int second = time/60;
int minute = (time/60)%60;
int hour = (time /60)/60;
대입 연산
a+= b; // a= a+b의 연산이 이루어져, a== a+b, b==b
비교/논리 연산
!a a가 true이면 false, false이면 true
a || b a와 b의 OR 연산, a와 b 모두 false인 경우에만 false
a && b a와 b의 AND 연산, a와 b true인 경우에만 true
a ^ b a와 b의 XOR 연산, a와 b가 서로 다를 떄 true
condition ? opr2 : opr3
조건문(condition)이 true면 opr2, false면 opr3
swith (식) {
case 값1:
실행문장 1;
break;
case 값 2:
...
dafault:
실행문장 n:
}
Scanner sc = new Scanner(System.in);
final int dollar = 1100;
System.out.print("원화를 입력하세요(단위 원) >>");
double won = sc.nextDouble();
System.out.println(won+"원은 $"+won/dollar+"입니다.");
//방법 1
Scanner sc = new Scanner(System.in);
System.out.print("2자리수 정수 입력(10~99) >>");
int n = sc.nextInt();
if(n>10&&n<100) {
if (n / 10 == n % 10) {
System.out.println("Yes! 10의 자리와 1의 자리가 같습니다.");
}else System.out.println("다릅니다.");
//방법 2
Scanner sc = new Scanner(System.in);
System.out.print("2자리수 정수 입력(10~99) >>");
int n = sc.nextInt();
int a= n/10;
int b= n%10;
if (n > 10 && n < 100) {
if (a == b) {
System.out.println("1와 10의 자릿 수가 같습니다.");
} else System.out.println("다릅니다.");
}
System.out.print(" 금액을 입력하시오 >>");
int a, b, c, d, e, f, g;
int n = sc.nextInt();
a = n / 50000;
n = n - (a * 50000);
b = n / 10000;
n = n - (b * 10000);
c = n / 5000;
n = n - (c * 5000);
d = n / 1000;
n = n - (d * 1000);
e = n / 100;
n = n - (e * 100);
f = n / 10;
n = n - (f * 10);
g = n;
System.out.println("오만원권 "+a);
System.out.println("만원권 "+b);
System.out.println("오천권 "+c);
System.out.println("천권 "+d);
System.out.println("백권 "+e);
System.out.println("십권 "+f);
System.out.println("일권 "+g);
}
Scanner sc = new Scanner(System.in);
System.out.print("정수 3개 입력>>");
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if ((a > b && a < c) || (b > a && a > c)) {
System.out.println("중간 값은" + a);
} else if ((b > a && b < c) || (b > c && b < a)) {
System.out.println("중간 값은 " + b);
} else if ((c > a && c < b)||(c<a && a>b)) {
System.out.println("중간 값은" + c);
}
5번
Scanner sc = new Scanner(System.in);
System.out.print("정수 3개 입력>>");
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if (a + b > c || a + c > b || b + c > a) {
System.out.println("삼각형이 됩니다.");
}else System.out.println("삼각형 x");
}
6번
Scanner sc = new Scanner(System.in);
System.out.print("1~99 정수 입력>>");
int num = sc.nextInt();
int a, b;
a = num / 10; // 십의 자리
b = num % 10; // 일의 자리
if (a == 3 || a == 6 || a == 9) {
if (b == 3 || b == 6 || b == 9){
System.out.println("박수짝짝");
}else System.out.println("박수짝");
} else if (b == 3 || b == 6 || b == 9) {
System.out.println("박수짝");
}