/*
[3-1] 다음 연산의 결과를 적으시오.
[연습문제] /ch3/Exercise3_1.java
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | class Exercise3_1 { public static void main(String[] args) { int x = 2 ; int y = 5 ; char c = 'A' ; // 'A' 65 의 문자코드는 System.out.println( 1 + x << 33 ); //덧셈먼저(3) 시프트(int 32bit)는 2의n제곱* System.out.println(y >= 5 || x < 0 && x > 2 ); //true System.out.println(y += 10 - x++); //y = 5+10-2 = 13 System.out.println(x+= 2 ); //x = 3+2 System.out.println( !( 'A' <= c && c <= 'Z' ) ); //!(true&&true) 대문자인지 판별 System.out.println( 'C' -c); //c는 'A'를 담고있고 int로 표현하면 67-65 = 2 System.out.println( '5' - '0' ); //0에서 5까지의 값 차이 System.out.println(c+ 1 ); //c에 저장된 'A'(65)의 값을 불러온후 1을 더함 System.out.println(++c); //값 증가 후에 명령 실행 System.out.println(c++); //명령 실행 후에 값 증가 System.out.println(c); //윗줄에서 증가된 값이 보여지게 됨 } } |
/*
[3-2] 아래의 코드는 사과를 담는데 필요한 바구니 버켓 의 수를 구하는 코드이다 만일 사과의 수가 123개이고
하나의 바구니에는 10개의 사과를 담을 수 있다면 13개의 바구니가 필요할 것이다
[연습문제] /ch3/Exercise3_2.java
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Exercise3_2 { public static void main(String[] args) { int numOfApples = 123 ; // 사과의 개수 int sizeOfBucket = 10 ; // ( ) 바구니의 크기 바구니에 담을 수 있는 사과의 개수 int numOfBucket = ( numOfApples/sizeOfBucket+ 1 ); // 모든 사과를 담는데 필요한 바구니의 수 System.out.println( "필요한 바구니의 수 :" +numOfBucket); } } //[실행결과] 13 |
/*
[3-3] 아래는 변수 의 값에 따라 num ‘양수’, ‘음수’, ‘0’을 출력하는 코드이다 삼항연산자로 알맞은 코드
[Hint] 삼항 연산자를 두 번 사용하라.
[연습문제] /ch3/Exercise3_3.java
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Exercise3_3 { public static void main(String[] args) { int num = 10 ; System.out.println(num < 0 ? "음수" : (num > 0 ? "양수" : 0 )); } //조건 연산자?와 :이용, 연산의 우선순위를 정리하기 위해 괄호 사용 } //[실행결과] 양수 |
/*
[3-4] 아래는 변수 num의 값 중에서 백의 자리 이하를 버리는 코드이다 만일 변수 num의 값이 ‘456’이라면
‘400’이 되고, ‘111’이라면 ‘100’이 된다 에 알맞은 코드를 넣으시오.
[연습문제] /ch3/Exercise3_4.java
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Exercise3_4 { public static void main(String[] args) { int num = 456 ; System.out.println(num/ 100 * 100 ); } } //[실행결과] 400 |
/*
[3-5] 아래는 변수 의 값 중에서 일의 자리를 1로 바꾸는 코드이다 만일 변수 num의 값이 333이라면 331이 되고
777이라면 771이 된다 에 알맞은 코드를 넣으시오
[ ] 연습문제 /ch3/Exercise3_5.java
*/
/*
[3-6] 아래는 변수 num의 값보다 크면서도 가장 가까운 10의 배수에서 변수 num의 값을 뺀 나머지를 구하는 코드이다
예를 들어 24의 크면서도 가장 가까운 10의 배수는 30이다 19의 경우 20이고 81의 경우 90이 된다 30에서 24를 뺀
나머지는 6이기 때문에 변수 num의 값이 24라면 6을 결과로 얻어야 한다 에 알맞은 코드를 넣으시오
[Hint] 나머지 연산자를 사용하라.
[연습문제] /ch3/Exercise3_6.java
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Exercise3_6 { public static void main(String[] args) { int num = 24 ; System.out.println( 10 - num% 10 ); } } //[실행결과]6 |
/*
[3-7] 아래는 화씨(Fahrenheit)를 섭씨(Celcius)로 변환하는 코드이다 변환공식이
'C =5/9 ×(F - 32)'라고 할 때 알맞은 코드를 넣으시오 단 변환 결과값은 소수점 셋째자리에서 반올림해야한다
(Math.round()를 사용하지 않고 처리할 것)
[연습문제] /ch3/Exercise3_7.java
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Exercise3_7 { public static void main(String[] args) { int fahrenheit = 100 ; float celcius = 5 /9F *(fahrenheit - 32 ); System.out.println( "Fahrenheit:" +fahrenheit); System.out.println( "Celcius:" +(( int )(celcius* 100 + 0.5 )/100F)); } } //[실행결과] Fahrenheit:100 // Celcius:37.78 |
/*
[3-8] 아래 코드의 문제점을 수정해서 실행결과와 같은 결과를 얻도록 하시오.
[ 연습문제 ]/ch3/Exercise3_8.java
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | class Exercise3_8 { public static void main(String[] args) { byte a = 10 ; byte b = 20 ; byte c = ( byte ) (a + b); //jvm에서 연산을 위해 자동으로 int 형변환, 다시 byte로 char ch = 'A' ; ch = ( char ) (ch + 2 ); //jvm에서 연산을 위해 자동으로 int 형변환, 다시 char로 float f = 3F / 2 ; //적어도 하나는 F long l = 3000 * 3000 *3000L; //적어도 하나는 L float f2 = 0 .1f; double d = 0.1 ; boolean result = ( float )d==f2; //유효자리수가 큰 double은 오차가 커질 수 있어 float으로 System.out.println( "c=" +c); System.out.println( "ch=" +ch); System.out.println( "f=" +f); System.out.println( "l=" +l); System.out.println( "result=" +result); } } //[실행결과] //c=30 //ch=C //f=1.5 //l=27000000000 //result=true |
/*
[3-9] 다음은 문자형 변수 ch가 영문자 (대문자 또는 소문자)이거나 숫자일 때만 변수 b의 값이 true가 되도록
[연습문제] /ch3/Exercise3_9.java
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Exercise3_9 { public static void main(String[] args) { char ch = 'z' ; //char은 ''로 표시, 논리연산자 ||이용 boolean b = ( 'A' <= ch && ch <= 'Z' || 'a' <= ch && ch <= 'z' || '0' <= ch && ch <= '9' ); System.out.println(b); } } //[실행결과] true |
/*
[3-10] 다음은 대문자를 소문자로 변경하는 코드인데 문자 ch에 저장된 문자가 대문자인 경우에만 소문자로 변경한다
문자코드는 소문자가 대문자보다 32만큼 더 크다 예를 들어 'A‘의 코드는 65이고 ’a'의 코드는 97이다
[연습문제] /ch3/Exercise3_10.java
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class Exercise3_10 { public static void main(String[] args) { char ch = 'A' ; //대문자인지 판별한 뒤에 32만큼 합한다, 계산은 int로 이루어지기 때문에 변환 char lowerCase = ( 'A' <= ch && ch <= 'Z' ) ? ( char )(ch+ 32 ) : ch; System.out.println( "ch:" +ch); System.out.println( "ch to lowerCase:" +lowerCase); } } //[실행결과] // ch:A // ch to lowerCase:a |
'먼지 낀 책장사이 > Java' 카테고리의 다른 글
4장 조건문과 반복문 (0) | 2017.08.04 |
---|---|
자바의 정석 연습문제 2장 변수 (0) | 2017.07.25 |