자바 학습(1~5일) 잊어버릴 만한 것 재복습

728x90

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의 배수 첫번째

728x90