[220428][과제] 연산자, 조건식
■목표당성
::: 1. 자바의 기본자료형을 분류할수 있고 범위를 알고 있다. 있다
::: 2. 조건식을 쓸수 있다. 있다
::: 3. 연산자의 우선순위를 알고 있다. 있다
■정리 문제1 > 필수!
목표 : 조건식을 만들 수 있다.
다음문장들을 조건식으로 출력하시오.
//q1-1 int형 변수 x가 10보다 크고 20보다 작을때 true인 조건식
int x =15;
boolean test11 = (x>10 && x<20)? true : false; System.out.println(test11);
System.out.println(x>10 && x<20);
//q1-2 char형 변수 ch가 공백이나 탭이 아닐때 true인 조건식
char ch ='^';
boolean test12 = !(ch == ' ' || ch == '\t')? true : false; System.out.println(test12);
System.out.println("q1-2-1\t"
+ !(ch==' '||ch=='\t'));
System.out.println(ch != ' ' && ch !='\t');
//q1-3 char형 변수 ch가 'x' 또는 'X'일때 true인 조건식
boolean test13 = (ch=='x' || ch=='X')? true : false; System.out.println(test13);
//q1-4 char형 변수 ch가 숫자('0'~'9')일때 true인 조건식
boolean test14 = (ch >= '0' && ch <='9')? true : false; System.out.println(test14);
//q1-5 char형 변수 ch가 영문자(대문자 또는 소문자) 일때 true인 조건식
boolean test15 = ((ch>='A' && ch<='Z') || (ch>='a' && ch<='z'))? true : false; System.out.println("Q1-5" +test15);
//q1-6 boolean형 변수 bt가 false일때 true인 조건식
boolean bt = false;
boolean test16 = (bt==false)? true : false; System.out.println(test16);
////////////////////////////////////////////////////////////
// 정리 문제(2) 풀이와 결과를 적으시오. 더한+ 다음 비교=하고 &&논리 =>산술 비교 논리 ////////////////////////////////////////////////////////////
*** int x = 2; int y=5; char c = 'A';
System.out.println( y >=5 || x < 0 && x > 2);
//1.비교 true fasle false
//2. true || false
//3. true
System.out.println( y += 10 - x++); //단항, 이항, 삼항 = 항상 맨 마지막
//1. x++ 어차피 ;끝나고 이므로 x
//2. 10 - x++ = 8
//3. y += 10 - x++ = y+8=13
//4. 출력후 x증가 x=3
System.out.println( x+=2);
//3+=2 x=5
System.out.println( !('A' <=c && c<='Z') );
//false
//int 자료형 보다 작은것은 연산시 int 캐스팅 그 결과int
System.out.println( 'C' -c);
//'C' -'A' = 67-65= 2
System.out.println( '5' - '0');
//int보다 작은 애들은 int로 바꿔서 계산 5
System.out.println( c+1);
//int 자료형 'A' char + 1(int) =65+1=66
System.out.println( ++c);
//char저장형식은 int형태지만 출력형식은 char 문자
//문자 자체를 증가하고 문자로출력
//대상과 대상간의 연산이 아니고
//대상이 하나밖에 없다
//문자증가 출력
System.out.println( c++);
//출력('B') 후 증가('C')
//출력값은 B
System.out.println( c);
//'C'
■트러블 슈팅
※ char형 변수 ch가 숫자('0'~'9')을 &&를 이용해서 범위를 코드로 작성하지 못했다
=> ch2 >= '0' && ch2 <='9'
=> char형 변수는 저장될 때 아스키 코드를 거쳐서 숫자로 저장된다는 것을 이용해서 범위를 &&로 만들면 된다
■ 오늘의 소감
연산자를 배웠는데 연산자가 포함된 코드를 해석하는 부분에서 어려움이 있었다.
주어진 문제를 코드로 짜는 것은 괜찮았는데
역으로 해석을 하려니 출력이 어떻게 되는지 생각해야 되서 생각보다 어려웠다.
이번 주 주말에는 연산자 보충학습이 필요하다