JAVA WORKSHOP01

양인수·2025년 4월 2일

java 문제풀이

목록 보기
1/1
post-thumbnail

❓[문제 1]

package workshop01;

public class Test01 {

	public static void main(String[] args) {

		int a = 100;
		double b = 3.14;
		char c = 'A';
		boolean d = true;
		
		System.out.println("정수형 변수의 값은 " + a +"이며, 자료형은 int 입니다");
		System.out.println("실수형 변수의 값은 " + b +"이며, 자료형은 double 입니다");
		System.out.println("문자형 변수의 값은 " + c +"이며, 자료형은 char 입니다");
		System.out.println("논리형 변수의 값은 " + d +"이며, 자료형은 boolean 입니다");
		
	}

}

출력
정수형 변수의 값은 100이며, 자료형은 int 입니다
실수형 변수의 값은 3.14이며, 자료형은 double 입니다
문자형 변수의 값은 A이며, 자료형은 char 입니다
논리형 변수의 값은 true이며, 자료형은 boolean 입니다

-> 자료형은 그냥 문자열 써넣어서 출력했는데 자료형도 불러와서 써넣을 수는 없나

💡구글링 후 변경 결과

System.out.println("정수형 변수의 값은 " + a +"이며, 자료형은 "+ Integer.class.isInstance(a) +"입니다");

결과
정수형 변수의 값은 100이며, 자료형은 true입니다

-> true /false 로만 나옴


❓[문제 2]

package workshop01;

public class Test02 {

	public static void main(String[] args) {

		String s1 = "1";
		String s2 = "2";
		boolean bnx = false;
		char c1 = 'A'; // 아스키 10진수 65
		char c2 = 'B'; // 아스키 10진수 66
		char c3 = '1'; // 아스키 10진수 49
		char c4 = '2'; // 아스키 10진수 50
		int inx = 2;

		System.out.println(s1 + s2);
		System.out.println(!bnx);
		System.out.println((int) c1 + (int) c2);
		System.out.println((int) c3 + inx);
		System.out.println((int) c3 + (int) c4);

	}

}

출력
12
true
131
51
99

💡풀이과정

  • c1~c4 까지 출력해보고 출력값 메모
  • boolean 형태 값을 반전시키는 방법 검색 ( ! 사용)
  • c3은 출력 결과를 (int)형태로 캐스팅? 한 상태이기 때문에 int 형태인 inx와 산수 가능

❓[문제 3]

package workshop01;

public class Test03 {

	public static void main(String[] args) {

		int num = 45678;

		int result = ((num / 1000) << 0) * 1000;

		System.out.println("기존 숫자: " + num);
		System.out.println("비트 연산 후 변환된 숫자: " + result);

	}
}

출력
기존 숫자: 45678
비트 연산 후 변환된 숫자: 45000

💡풀이과정

  • 비트 시프트 연산자 검색
  • 비트를 한 칸 옆으로 미는 걸 알게 되었는데, 그 결과값은 어떻게 구하는건지 모르겠다
  • 0 넣었더니 45 출력
  • 출력식(num / 1000) << 0)통째로 묶고 * 1000

-> 시프트 연산자를 사용해 푼 건 아닌듯하다..

소요 시간 : 11분


❓[문제 4]

package workshop01;

public class Test04 {

	public static void main(String[] args) {

		char ch = 'ㅁ'; // 다른 문자로 변경하여 테스트 가능
		// 삼항 연산자를 사용하여 영문자인지 판별
		String result = (ch >= 'A' && ch <= 'Z') ? "입력한 문자 '" + ch + "'는 영문자입니다." : "입력한 문자 '" + ch + "'는 영문자가 아닙니다.";
		// 결과 출력
		System.out.println(result);
	}
}

출력
입력한 문자 'ㅁ'는 영문자가 아닙니다.

💡풀이과정

  • 삼항 연산자 검색
  • 변수 = (조건식) ? true일때 출력할 내용 : false일때 출력할 내용 ;
  • 문제에 false 자리가 비어있어서 false일때 출력할 내용 추가
  • 조건식 부분 풀이
    -> ch는 'A'보다 크거나 같다 &&(AND 의미함) ch는 'Z'보다 크거나 같다.

소요시간 9분

0개의 댓글