단축키
한번에 키워드 수정 (alt + shift + r)
printf
printf의 모든 데이터 타입은 %s로 받아서 사용가능
(문자열로 변경되어 출력되기 때문)
너비 및 정렬방법
%[flat][width]포맷
참조형
4byte
print, println, printf
print 직관적사용(=println) 개행X
println 직관적사용 개행O
printf %d, %f등 string format을 사용해야함
객체생성방법들
myCar = new Car();
Car yourCar = new Car();
Scanner의 사용(import java.util.Scanner;필요)
Scanner sc = new Scanner(System.in);
System.out.println("이름을 입력해주세요");
String name = sc.next();
System.out.printf("사용자 이름:[%s]%n", name);
next 메소드
next계열 메소드 : 입력버퍼에서 공백, 개행문자 전까지 읽어옴(사용자 입력값부터)
nextLine 메소드 : 입력버퍼에서 첫 개행문자까지 읽어옴
삼항연산자
조건식?참일 때 사용할 값:거짓일 때 사용할 값
public void test5() {
int a = 5;
int b = 7;
int c = a>b?a:b;
c = a==b?a++:a--;
c = a==b?100:200;
System.out.println("c="+c);
//nested 중첩사용
c = a==0?a:(b==0?b:1000);
}
논리 비교 연산자
&& AND : a && b => a가 참이고, b도 참이면 true 리턴(둘다 true여야만 true)
|| OR : a||b => a가 참이거나, b가 참이면 true 리턴 (둘중하나만 true여도 true)
public void test4() {
int a = 1;
int b = 1;
System.out.println(a==1 && b==0); //false
System.out.println(a==1 || b>0); //true
//&& 좌항이 true인 경우, 우항을 검사함
System.out.println(a>0 && ++b>0); //true
System.out.printf("a=%d, b=%d%n", a, b); //a=1, b=2
a = 1;
b = 1;
//&& 좌항이 false인 경우, 우항을 검사x
System.out.println(a<0 && ++b>0); //false
System.out.printf("a=%d, b=%d%n", a, b); //a=1, b=1
a = 1;
b = 1;
//|| 좌항이 true인 경우, 우항을 검사x
System.out.println(a>0 || ++b>0); //true
System.out.printf("a=%d, b=%d%n", a, b); //a=1, b=1
a = 1;
b = 1;
//|| 좌항이 false인 경우, 우항을 검사함
System.out.println(a<0 || ++b>0); //true
System.out.printf("a=%d, b=%d%n", a, b); //a=1, b=2
// & | : a&b a|b
//무조건 좌/우항을 검사함(효율이 안좋음)
a = 1;
b = 1;
System.out.println(a>0 | ++b>0); //true
System.out.printf("a=%d, b=%d%n", a, b); //a=1, b=2
}
복합대입연산자
public void test6() {
int a = 10;
a += 5; //a = a + 5; 이 식과 동일하지만 처리되는 방식은 다름(성능상 a += 5;가 우위에 있음 -> 사용권장)
System.out.println("a ="+ a);
a -= 5; //a = a - 5;
System.out.println("a ="+ a);
a *= 5; //a = a * 5;
System.out.println("a ="+ a);
a /= 5; //a = a / 5;
System.out.println("a ="+ a);
a %= 5; //a = a % 5;
System.out.println("a ="+ a);
}