자바 초보에서 알고리즘 B형까지

1. 나누기 연산의 몫과 나머지

나머지는 %연산을 이용하여 구할 수 있지만 파이썬과 달리 몫을 구하는 연산은 따로 존재하지 않는다.

몫을 찾으려면 a/b를 나눈 결과를 int 변수에 저장하십시오.

1-1) 타입 변환에 주의

첫 번째(double) a/b는 2.25를 4로 나누어 9.0을 double a로 변환합니다.

(Double) (a/b)는 a/b의 결과인 2를 double로 바꾸는 2.0을 반환합니다.

하지만 a/b 결과가 2인 이유는 무엇입니까?

정수 a와 b 사이의 나누기/연산은 실수가 아닌 정수로 지정됩니다.

나눗셈 연산에서 두 항이 모두 정수 유형이면 / 연산 결과는 정수 유형(몫)입니다.

public class Main {
    public static void main(String() args) {
        int a = 9, b = 4;

        System.out.println((double)a / b);
        System.out.println((double)(a / b));
    }
}

2.25
2.0

이 결과는 나누기 이외의 다른 작업에 주의를 요합니다.

예를 들어 정수형과 실수형을 더하면..? 오류가 나타납니다.

다음 결과는 5가 아니라 5.0입니다.

public class Main {
    public static void main(String() args) {
        double a = 3 / 3;
        int b = 4;

        System.out.println(a + b);
    }
}

5.0

2. 비교 연산 == 및 equal()

a == b는 값 뿐만 아니라 type과 address 값이 같으면 true말하다

반면에 a.equals(b)는 객체 a와 b의 값만 비교합니다.
주소가 달라서 값이 같으면 참이라고 합니다.

같음과 ==의 차이점 (tistory.com)

같음과 ==의 차이점

같음과 ==의 차이점 같음과 ==의 차이점은 무엇입니까? 기본적으로 둘 다 양쪽의 내용 비교 값을 부울 유형으로 반환한다는 공통점이 있습니다.
그러나 확실히 차이점이 있습니다

ojava.tistory.com

3. 삼항 연산자

if else 문은 삼항 연산자를 사용하여 한 줄로 표현할 수 있습니다.

형식의 조건문 …

if (조건) {
    a = v1;
}
else {
    a = v2;
}

다음과 같이 한 줄로 표현할 수 있습니다.

조건이 참이면.. v1이 거짓이면 v2에 a가 할당됩니다.

a = 조건 ? v1 : v2;

특히 ()는 주의해서 사용해야 합니다… 다음과 같은 경우…

public class Main {
    public static void main(String() args) {
        int a, n;

        n = 8;
        a = 2 + 6 + n < 10 ? 5 : 6;

        System.out.println(a);
    }
}
6

출력은 6입니다.

2+6+n < 10이 조건으로 간주되기 때문입니다.

그러나 2 + 6을 상수로 추가하고 n < 10에 따라 5 또는 6을 갖고 싶다면...

n < 10 ? 5: 6은 ()와 결합할 수 있습니다.

public class Main {
    public static void main(String() args) {
        int a, n;

        n = 8;
        a = 2 + 6 + (n < 10 ? 5 : 6);

        System.out.println(a);
    }
}
13

4. 그렇지 않으면

Java에는 Elif가 없고 Python에는 Elif가 있습니다.
다른 언어에는 Elif가 없습니다.

5. 문자열 대 문자 비교

문자열은 Java에서 “”로 묶입니다.
단일 문자 문자는 ”로 묶습니다.

예를 들어 “c”는 문자열 유형이고 “c”는 char 유형입니다.
오전.

아무 생각 없이 보면 그게 무슨 뜻인지 의아할 수 있지만 비교 작업에서 중요합니다.


6. 진실, 거짓

Python과 달리 Java에는 true 또는 false의 개념이 없습니다.

조건식은 true 또는 false를 결정하는 조건식을 입력해야 함을 나타냅니다.


7. 및 또는 논리 연산

파이썬은 and and or로 간단하게 표현할 수 있습니다.
다른 언어는 기호로 표현해야 합니다.

그리고 자바 &&

아니면 ||

물론 하나의 조건에서 필요한 만큼 여러 번 사용할 수 있습니다.

참고로 and는 or보다 우선순위가 높습니다.

import java.util.Scanner;

public class Main {
    public static void main(String() args) {
        Scanner sc = new Scanner(System.in);
        int aMath = sc.nextInt();
        int aEng = sc.nextInt();

        int bMath = sc.nextInt();
        int bEng = sc.nextInt();

        if (aMath > bMath && aEng > bEng) {
            System.out.println(1);
        } else {
            System.out.println(0);
        }
    }
}

100 85
98 78

1

import java.util.Scanner;

public class Main {
    public static void main(String() args) {
        // 여기에 코드를 작성해주세요.

        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();

        if ( a < 10 || a > 20){
            System.out.println("yes");
        } else {
            System.out.println("no");
        }
    }
}

10

no

8. 부등식 표현 주의사항

또한 특정 범위 내에서 비교 작업을 수행할 때 Python을 제외하고 부등식을 있는 그대로 쓰는 것은 불가능합니다.

예를 들어 a가 2보다 크거나 같고 10보다 작거나 같은 숫자인지 비교하려는 경우

2 <= a <= 10 오류가 발생합니다.

2 <= && <= 10

import java.util.Scanner;

public class Main {
    public static void main(String() args) {
        // 여기에 코드를 작성해주세요.

        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();

        if (a >= 10 && a <= 20) {
            System.out.println("yes");
        } else {
            System.out.println("no");
        }


    }
}

10

yes

9. 알고리즘 – 최소 3개의 숫자를 찾는 프로그램

a,b,c에서 최소값을 찾아 출력하기 위해 조건문을 사용한다면 어떻게 해야 할까요?

a <= b이고 a <= c이면 a는 최소값입니다.

b <= a 및 b <= c이면 b는 최소값입니다.

c <= a 및 c <= b인 경우 c는 최소값입니다.

import java.util.Scanner;

public class Main {
    public static void main(String() args) {
        // 여기에 코드를 작성해주세요.

        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();

        if (a <= b && a <= c){
            System.out.println(a);
        } else if (b <= a && b <= c){
            System.out.println(b);
        } else {
            System.out.println(c);
        }
    }
}