1일차 정리본
출력문
자바에서 출력할 수 있는 제일 기본적인 문장은 System.out.print & System.out.println이 있다.
두 문장의 차이점은 아래와 같음
System.out.print("Hello World");
System.out.println("Hello World");
출력문: Hello WorldHello World
System.out.print은 다음 문장과 띄어쓰기를 하지 않고 System.out.println은 다음 문장을 띄어쓰기 해줌
정수의 종류
float a = 1.111111111f; // 7자리까지만 출력 + 끝에 항상 f를 붙여줘야됨
double b = 1.1312313; // 15자리까지 출력
long c = 21000000000L; // 20억이 넘을때는 long으로 대체 - 메모리값 세이빙 목적 + 끝에 L을 붙일 것
char d = 's'; // ''작은 따옴표만 가능 + 한자리 String만 가능
String f = "여러문자 대입 가능한 타입";
상수 (변하지 않는 정수)
final을 붙여 상수로 변환
final int MAX = 3;
상수의 변수 이름은 대문자로 쓰는 것이 관례
변수의 값 바꾸기
int X = 20, Y= 40; // 변수 한줄로 묶기 가능
int tem = X; //값을 서로 바꾸기위해 빈 variable tem에 X값 대입하여 X값 보존
X=Y; // Y값을 X로 대입
Y=tem; //tem변수에 저장해 놓았던 X값을 다시 Y에 대입해주면 값 서로 바꾸기 완성
System.out.println(X);
System.out.println(Y);
printf 사용
String str = "Java";
char ch = '1';
int i = 5;
System.out.printf("%s를 %d일동안 공부한 정리본 포스팅 %c개 완료%n", str, i, ch)
출력문: 자바를 5일동안 공부한 정리본 포스팅 1개 완료
%d = int
%c = char
%s = String
%f = float
%n = printf문같은경우 println처럼 띄어쓰기를 하지 않기 때문에 %n (띄어쓰기 함수)를 넣어서 띄어쓰기 해줘야함
System.out.printf("%s",str) = Java
%s를 쓰면 str에 저장되있는 변수만큼 저장공간을 확보해줌으로 전체 출력문인 Java 가 출력이 됨
System.out.printf("%0.2s",str) = Ja
%s 앞에 출력할 숫자를 써주면 지정한 숫자까지만 출력이 됨; 예시: 0.2%s (Ja)
System.out.printf("%20s",str) = Java
20을 써주면 총 20공간이 확보가되므로 Java가 좌측정렬이 됨
System.out.printf("%-20s",str) = Java
-20을 써주면 앞에서부터 총 -20공간이 확보가되므로 Java가 우측정렬이 됨
2일차 정리본
연산자
int a = ++a;
int b = a++; //후위형 연산자
System.out.println(a);
System.out.println(b);
++a와 a++의 차이
++a는 a 변수 그 자체에 1을 먼저 더하는 것이고 a++의 의미는 먼저 할당된 변수에 본래 a값을 대입한 후에 a에 1을 더하는 것이다
따라서 출력문의 결과는 a=1이고 b = 0이 된다
유니코드
char a = 'B';
System.out.println((int)a);
출력문: 66
유니코드 문자표, 컴퓨터의 이진법성질로 인해 알파벳 B는 컴퓨터가 66으로 인식한 후 사용자가 알아볼 수 있게 컴파일러를 통해 재변환하여 B로 출력된다. 따라서 char의 변수를 'B'로 지정하고 (int)를 활용해 형변환 시키면 숫자 66이 출력된다
자동형변환
byte i = 127;
System.out.println(i*3)
byte의 값은 -128~127까지이지만 3을 곱한 값인 381이 출력되는데, 이는 자동으로 int로 자동 형변환이 됬기때문.
* 자동 형변환은 값 손실을 막기 위해 무조건 작은 값에서 큰 값으로만 변경이 됨
short -> int
float -> double 등
3일차 정리본
Math.round 함수
double d = 3.141592;
System.out.println(Math.round(d));
출력값: 3
만약 3.14를 출력하고 싶다면
System.out.println(Math.round(d*100)/100.0);
먼저 100을 곱해서 314로 만든 후 100.0을 나눠서 3.14로 재출력
(.0을 붙인 이유는 double로 자동형변환을 시키기 위함, 안붙이면 int/int로 나눈값이 되므로 3이 출력됨)
.equals() & .equalsIgnoreCase 함수 = String
String str = "a";
String str2 = "A";
Boolean result = str.equalsIgnoreCase(str2); > 대문자 소문자 무시
System.out.println(str.equals(str2));
= false
System.out.println(result);
= true
논리부정연산자
boolean a = true;
System.out.println(a);
true
System.out.println(!a);
false
!를 씀으로서 true의 값을 false로 변경
!는 boolean 타입의 변수만 사용 가능
조건연산자
int a = 2;
int b = 3;
int result = (a>b ? a:b);
System.out.println(result);
출력문: 3
먼저 두개의 비교 연산자를 할당한 후 다른 변수(result)에 조건문(a>b ? a:b) 을 할당
= a가 b보다 클 시 a를 출력하고 아니면 b를 출력할 것
= 위의 format으로 조건연산자 ?를 쓰면 됨; if문 대신 간단하게 입력 가능
4일차 정리본
switch 문
만약 지정된 변수가 상수나 정수이고 결과값이 문자열이나 상수이면 if문 대신 활용 가능 = 보다 깔끔함
int month = 1;
switch(month) {
case 1: case 2: case 3:
System.out.println("겨울입니다");
break;
case 4: case 5: case 6:
System.out.println("봄입니다");
break;
case 7: case 8: case 9:
System.out.println("여름입니다");
break;
default:
System.out.println("겨울입니다");
}
Math.random()
기본은 float로 배정, 0~1까지의 float 랜덤 숫자를 출력
0<Math.random<1 의 개념으로 출력되기 때문에 만약 10까지의 랜덤 숫자를 구하고 싶다면,
Math.random()*10을 곱하여 10까지의 숫자 출력이 가능하고
- 0*10<Math.random()<1*10 = 0<Math.random<10 이런 식
만약 float말고 int값을 구하고 싶다면 형변환 method를 사용하여 값을 변경해 주면 된다.
- (int)Math.random()*10
5일차 정리본
while 문
int i = 0;
while(i<6){
i++;
}
System.out.println("6 초과")
int i의 0값을 하나씩 더하면서 6을 초과하면 중지되는 반복문
중간의 i++값이 없다면 무한반복이 되면서 프로그램을 강제 종료 시켜야함
do while문
do {
i++;
}
while(i<6);
먼저 실행할 조건을 미리 입력해놓고 6초과가 아닐시 계속 반복하는 반복문
기본 while과 다르게 마지막에 세미콜론 ; 을 입력해야하는 차이점
조건문과는 별개로 꼭 실행시켜야 하는 조건문이 필요할 시 do while을 씀
continue 문
int i = 0;
while(i<10) {
++i;
if((i%2)==0) {
continue;
}
System.out.println("2의 배수");
System.out.println(i);
}
조건문중 값이 맞는 경우(2의 배수일 경우) 현재 반복문을 벗어나서 다음 조건문 실행
출력문:
2의 배수
1
2의 배수
3
2의 배수
5
2의 배수
7
2의 배수
9
break 문
int i = 0;
while(i<10) {
++i;
if((i%2)==0) {
break;
}
System.out.println(i);
System.out.println("2의 배수 첫번째");
}
break 문을 씀으로써 만약 조건문이 맞다면 그 조건문을 중지
출력문:
1
2의 배수 첫번째