JAVA(1)

현수's 개발공부일지·2022년 6월 7일
post-thumbnail

java

java의 기본코드시작

public class Main {
   public static void main(String[] args) {
   
   }
  } 

1.변수

int number = 5;
    System.out.println(number);

    String sonhs = "hello";
        System.out.println(sonhs);
    }
}

int는 변수 '숫자' 자료형의 이름이고,
String은 변수 '문자' 자료형의 이름이다.
실행한 결과는?

5
hello

2.상수

final int finalNumber = 1;
        System.out.println(finalNumber);
        finalNumber = 2;
        System.out.println(finalNumber);

JAVA는 상수값이 재할당이 안된다.위 코드처럼 실행할경우

C:\Users\thsgu\OneDrive\���� ȭ��\�� ����\son_java\src\main\java\Main.java:12: error: cannot assign a value to final variable finalNumber
        finalNumber = 2;
        ^
1 error

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.

이렇게 오류가 뜬다.
그렇다면 문자열로는 재할당이 가능한가??

final int finalNumber = 1;
        System.out.println(finalNumber);
        sonhs = "good bye!";
        System.out.println(sonhs);

이런식으로 finalNumber값 밑에 sonhs라는 새로운 재할당값 문자열을 줬다. 실행을 하면

1
good bye!

입력한 순서대로 실행이 잘 된다.

tip:각 언어마다 보이지않는 룰같이 정해진 단어가 있다.
ex)파이썬의 경우 'final_number'와 같이 쓰는반면, JAVA에서는 camelCase(낙타 등모양이 구불한거처럼) 형식으로 첫번째는 무조건 맨앞에 소문자, 두번째 단어에는 대문자형식으로 'finalNumber' 이렇게 쓴다.

3.자료형

자료형에는 크게 두가지로 나뉜다. Primitive Type(기본 자료형)과 Reference Type(참조 자료형)으로 나뉜다.

(1)기본 자료형
->숫자

short s = 1;
       System.out.println(s);
       int a =3;
       System.out.println(a);

       long b = 4;
       System.out.println(b);

       float f = 5.5F;
       System.out.println(f);

       double d = 5.5F;
       System.out.println(d);

       System.out.println(Short.MAX_VALUE);
       System.out.println(Short.MIN_VALUE);
       System.out.println(Integer.MAX_VALUE);
       System.out.println(Integer.MIN_VALUE);
       System.out.println(Long.MAX_VALUE);
       System.out.println(Long.MIN_VALUE);
       System.out.println(Float.MAX_VALUE);
       System.out.println(Float.MIN_VALUE);
       System.out.println(Double.MAX_VALUE);
       System.out.println(Double.MIN_VALUE);

short는 2바이트로 표현할 수 있는 숫자 변수다.

숫자를 칭하는 변수는 앞서 말한 int가 있다. 하지만 더 큰 숫자를 위해선 long이라는 변수가 있다. int 는 +- 20억까지, long은 더 크게 표현하고 싶을때 쓸 수 있다.

float 은 소수점을 표현하고 싶을때 쓴다. 그리고 값뒤에 대문자F를 붙혀야만 실행했을때 제대로 값을 볼 수 있다.

double 역시 long처럼 더 큰 소수점을 표현하고 싶을때 쓴다.

맨 밑에 있는 코드같은 경우는 각 자료형에서 볼 수 있는 최대,최솟값이다.

위코드를 실행한결과

1
3
4
5.5
5.5
32767
-32768
2147483647
-2147483648
9223372036854775807
-9223372036854775808
3.4028235E38
1.4E-45
1.7976931348623157E308
4.9E-324

이렇게 각 자료형의 값,최대값,최솟값을 가져올 수 있다.

->문자

char c = 'A';
        System.out.println(c);

문자는 char으로 표현한다. char은 무조건 문자 한 글자만 가져올 수 있다. 그래서 값에 두글자 이상을 넣으면 오류 및 실행이 되지 않는다.
출력결과는 당연히 'A'

->논리

boolean fact = true;
        fact = false;
        System.out.println(fact);

boolean 이라는 변수명을 이용해 참 거짓의 값을 변수로 선언할 수 있다. 조건문과 반복문에서 자주 사용한다.
출력결과는 마지막에 쓴대로 'false'.

->바이트

 byte data = 'd';
        System.out.println(data);

바이트는 값을 바이트형식 즉 숫자로 표현해준다. 숫자로 나오는 이유는 십진법 아스키코드를 사용하기 때문이다.
'd'라는 문자를 아스키코드를 사용하면 숫자 '100'
출력결과도 당연히 '100'이다.

(2)참조자료형

String sonhs = "Hello";
        System.out.println(sonhs);

        int[] intArray = new int[] {1,2,3,4,5};
        System.out.println(Arrays.toString(intArray));

자바에서 참조 자료형은 기본 자료형이 아닌 모든 것을 참조 자료형이라고 한다. 정확히는 참조 자료형이란 자바의 인스턴스를 가리킬 수 있는 자료형이다.
위코드를 실행하면

Hello
[1, 2, 3, 4, 5]

hello와 배열이나온다.

4.연산자

(1)산술연산자

        int num1 =10;
        int num2 = 20;

        System.out.println(num1 + num2);
        System.out.println(num1 - num2);
        System.out.println(num1 * num2);
        System.out.println(num1 / num2);
        System.out.println(num1 % num2);

산술 연산자는 비교적 간단하다. 그냥 할당값에 기본 기호를 넣어주면 된다.
(2)대입연산자

int num1 = 10;
int num2 = 5;

num1 += num2; // num1 = num1 + num2
System.out.println(num1);

num1 -= num2; // num1 = num1 - num2
System.out.println(num1);

num1 *= num2; // num1 = num1 * num2
System.out.println(num1);

num1 /= num2; // num1 = num1 / num2
System.out.println(num1);

num1 %= num2; // num1 = num1 % num2 
System.out.println(num1);

대입연산자는 변수 하나에 값을 대입해서 계산하는방식이다 .
맨 위에있는 num1 = num1+num2 라는뜻이다
출력결과는

15
10
50
10
0

(3)관계연산자

		int num1 = 10;
        int num2 = 20;
        int num3 = 10;

        System.out.println(num1 > num2); // 10 > 20
        System.out.println(num1 >= num3); // 10 >= 10
        System.out.println(num1 < num2); // 10 < 20
        System.out.println(num1 <= num2); // 10 <= 20
        System.out.println(num1 == num3); // 10 == 10
        System.out.println(num1 != num2); // 10 != 20

관계연산자는 true/false로 맞는지 틀린지 판단해주는 연산자이다.
출력결과는

false
true
true
true
true
true

(4)논리연산자

boolean a = true;
boolean b = false;

System.out.println(a && b);
// &&는 두가지 모두 참일 경우에는 true를, 그렇지 않을 경우에는 false를 반환합니다.
System.out.println(a || b);
// ||는 두가지 모두 거짓일 경우에는 false를, 그렇지 않을 경우에는 true를 반환합니다.
System.out.println(!b);
// !는 피연산자의 논리값을 바꿉니다. true는 false로 , false는 true로 반환합니다.

&&는 두가지 모두 참일 경우에는 true를, 그렇지 않을 경우에는 false를 반환한다.
||는 두가지 모두 거짓일 경우에는 false를, 그렇지 않을 경우에는 true를 반환한다.
!는 피연산자의 논리값을 바꾼다. true는 false로 , false는 true로 반환한다.
출력결과는

false
true
true

5.조건문

(1)if문

JAVA에서의 if문은 매우 직관적이고 간단하다. 맨윗줄부터 차례로 읽히고 실행된다는 점만 기억하자.

int check = 100;
int num1 = 150;
if (num1 > check) {
    System.out.println("100보다 큰 수입니다");
}

코드 출력결과는 당연히 >'100보다 큰 수입니다'

(2)switch문

switch문은 이미 조건을 정하고 간다는 의미로 보면 편하다.
'score'의 변수값은 'A',sout밑에 break를 써주면 바로 그 위에 있는 결과까지만 가져온다. 출력을 하면 "A등급입니다"라는 결과가 나온다.

char score = 'A';
switch (score) {
    case 'A':
        System.out.println("A등급입니다.");
        break;
    case 'B':
        System.out.println("B등급입니다.");
        break;
    case 'C':
        System.out.println("C등급입니다.");
        break;
    default:
        System.out.println("C등급보다 낮은 등급입니다.");
        break;
}

만약 break를 안쓰고 그대로 출력하면

A등급입니다.
B등급입니다.
C등급입니다.
C등급보다 낮은 등급입니다.

(3)삼항연산자

말그대로 코드에 수식이 3개 들어가있는 뜻이다

int a = 5;

String reuslt = (a < 10) ? "10보다 작습니다." : "10보다 큽니다.";
System.out.println(reuslt);

a는 5이다.당연히 10보다 작다.그렇다면 true.코드를 출력하면 결과값은
"10보다 작습니다"라고 나온다. 만약 a가 10보다 큰값으로 설정해두면 당연히 false값인 "10보다 큽니다" 라는 출력결과가 나온다.

삼항연산자의 기본코드 구조

(조건식) ? A : B

6.반복문

개인적으로 제일 이해안가는 부분이다. 파이썬과 자바스크립트의 반복분 구성은 비슷비슷하지만 조금씩 다르다.
(1)if문

int sum = 0;

        for (int i = 0; i < 10; i++) {
            sum += (i + 1);
        }
        System.out.println(sum);

1부터 10까지의 합을 구하는 예제다. 변수 i는 1부터 10까지 변할 때까지 1씩 더해진다. i가 증감식에 의해 11이 되면 조건문에 위배되기 때문에 더이상의 반복문 실행은 진행 되지 않고 출력된다.

(2)each문

String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};

        for (String day: days){
            System.out.println(day);

배열의 값들이 하나씩 출력된다. 즉, for-each문은 배열의 값들을 하나하나 변수에 담아서 출력한다고 생각하면 편하다.
(3)while문

int i = 0;
int sum = 0;
while (i < 10) {
    sum += i + 1;
    i += 1;
}
System.out.println(sum);

위의 for 반복문과 똑같은 결과를 반환하는 예제다. i가 1,2,3,이렇게 증가하다 11이 되면 조건식에 부합하지 않기 때문에 while 반복문이 종료되고 출력된다.

profile
코딘물이 됩시다.

0개의 댓글