Java 실습

[220428][과제] 연산자, 조건식

ss__0 2022. 4. 29. 19:29

■목표당성 
::: 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형 변수는 저장될 때 아스키 코드를 거쳐서 숫자로 저장된다는 것을 이용해서 범위를 &&로 만들면 된다

 

■ 오늘의 소감

연산자를 배웠는데 연산자가 포함된 코드를 해석하는 부분에서 어려움이 있었다.

주어진 문제를 코드로 짜는 것은 괜찮았는데

역으로 해석을 하려니 출력이 어떻게 되는지 생각해야 되서 생각보다 어려웠다.

이번 주 주말에는 연산자 보충학습이 필요하다