티스토리 뷰

  :계산하는 문자
  :사칙연산, 비트연산, 대소비교 , 특별한 기능(타입 체크)
   메서드 호출하거나 변수를 호출하는 기능
   배열을 호출할때도 사용 
    
   5 + 3 * 2


#실습 1.


package inputex;


import java.util.Scanner;


public class InputTest {
    public static void main(String[] args) {

  
  Scanner sc= new Scanner(System.in);
  System.out.print("이름을 입력하세요 :");
  String str = sc.nextLine();
  System.out.println("이름 :" +str);
  
  //문자열은 순번이 매겨져 있음
  //이 순 신
  //0  1   2
  //각각의 문자열을 부르기 위해서 사용하는 메서드 charAt(번호)
  
  "이순신".charAt(0); //이
  "이순신".charAt(1); //순
  "이순신".charAt(2); //신

  System.out.println("이름에서 성만 가지고 온다 :" +str.charAt(0));
  
  System.out.print("성별 남자:남/ 여자:여 라고 입력 : ");
  char gender = sc.nextLine().charAt(0);
  System.out.println(gender);

    }

}






operator : 연산시키는 문자
      operand + operand
      항            항
      
 -->연산자가 혼자 있을 때는 상관없는 데 여러개 있을 때는 
  누구부터 하는지 우선순위 따져야한다


1.우선순위

< 최 단 산 쉬 관 리 삼 대 >

 
  1) 우선 : Op1.java
  2) 항    : Op2.java
  3) 술    : Op3.java
  4) 프트 : Op4.java
  5) 계    : Op5.java
  6) 리    : Op6.java
  7) 항    : Op7.java
  8) 입    : Op8.java


       
 =>Op1.java는 최우선 연산자 
     [ ]연산자-대괄호 연산자 =>배열챕터

     .연산자 -==> 클래스

     ( )연산자-소괄호연산자 ==>메서드


#실습2.


1) 최우선 연산자


단 산 쉬 관 리 삼 대


package opex;


import java.util.Scanner;


public class Op1 {

     public static void main(String[] args) {


  //배열
  int [] ar ={10,20,30};
  //int 변수를 3개 만들고 각각 그 저장소에 10,20,30 을 넣어놈
  //저장소는 이름을 가져야 함
  //ar[0] --> ar배열의 첫번째라는 의미
  
  System.out.println(ar[0]); //10이라는 요소를 꺼내왔다
  System.out.println(ar[1]); //20이라는 요소를 꺼내왔다
  System.out.println(ar[2]); //30이라는 요소를 꺼내왔다
  
  //#실습
  // ar배열에서 두번째 요소를 불러다가 200을 넣어보자
  //-->수식으로 바꿀줄 알아야 함
  
  ar[1]=200;
  // ' = ' 대입연산자 우선순위 8순위
  // 배열 중에서 두번째 "호출 - 불러다 놓고 (호출연산)"
  //==> 대입시킴
  
  System.out.println(ar[1]);
  
  Scanner sc=new Scanner(System.in);
  sc.nextLine();
  // . 연산자 (점 연산자) : ~의 해석
  //sc의 (소유격)sc가 갖고 있는 것 중에서 nextLine() "호출"해라
  //메서드 호출 -> 최우선 연산자
  
  // . : 호출
  // () : 메서드를 호출하는 연산자
  
}

}




2) 단항 연산자 (unary)


+B


산 쉬 관 리 상 대



#실습 3.



package opex;


import java.util.Scanner;


public class Op2 {

   public static void main(String[] args) {

 

  int num = -5;
  //+, - 부호를 유지하거나 부호를 변경할 때 사용
  
  System.out.println(+num);

                      //(+1)*num
  System.out.println(-num);

                      //(-1)*num
  System.out.println(-(num+5));
  // -5+5 --> 0 --> (-1)*0 --> 0


  //()도 최우선 연산자이다.
  //()는 메서드 호출 연산자, 우선순위를 변경하는 연산자 : 최우선
  // 형변환 시키는 연산자 (강제 형변환연산자) : 단형에 속한다
  
  

   }

}



#실습 4.



 !,  ~ 연산자 : 대상을 반대로 만드는 연산자
 ! : 논리값 (true | false) 값을 반대로 뒤집는다.



 System.out.println(10<3);
       //false
  System.out.println(!10<3);
  --> 에러가 남
  -->(!(10<3)); 소괄호로 10<3 이 먼저 연산되도록 만들어 주어야함


  

System.out.println(!false);




  boolean isOff = false;
  System.out.println("꺼졌니?(isOff) :"+isOff);//-->꺼진 것
  System.out.println("꺼졌니?(isOff) :"+!isOff);//-->켜진 것
  System.out.println("꺼졌니?(isOff) :"+!!isOff);//-->꺼진 것
  System.out.println("꺼졌니?(isOff) :"+!!!isOff);//-->켜진 것
  





  boolean isOff = false;

  isOff = false ;
  isOff = !isOff; //오른쪽을 먼저하고 왼쪽으로 집어넣음 우변의값을 좌변에 집어넣음
  System.out.println("꺼졌니?(isOff) :"+isOff);//-->켜진 것
  
  isOff = !isOff; //오른쪽을 먼저하고 왼쪽으로 집어넣음 우변의값을 좌변에 집어넣음
  System.out.println("꺼졌니?(isOff) :"+isOff);//-->꺼진 것
  
  isOff = !isOff; //오른쪽을 먼저하고 왼쪽으로 집어넣음 우변의값을 좌변에 집어넣음
  System.out.println("꺼졌니?(isOff) :"+isOff);//-->켜진 것
  
  isOff = !isOff; //오른쪽을 먼저하고 왼쪽으로 집어넣음 우변의값을 좌변에 집어넣음
  System.out.println("꺼졌니?(isOff) :"+isOff);//-->꺼진 것
  





  ~  연산자 :  비트를 반대로 뒤집어

  비트 부정 연산자, 

틸드 연산자 : 물결 연산자


비트 --> 십진수

십진수 --> 비트


s 64 32 16  8 4 2 1 ->레이블

 

0 0  0   0   0 0 0 0  => 0

s : sign 부호를 나타냄


* 0-->양수

  1-->음수


< 양수계산 >


그 앞 레이블보다 하나 작은수로 계산


ex)


0000 1111 ->15

0001 1111 ->31

0011 1111 -> 63

0111 1111 -> 127


 0111 1111

+           1

-------------

10000 0000 --> 음수가 되버림

* overflower 현상 *


음수비트일 때 10진수 해석방법

 

( 레이블로는 불가능 )


 2의 보수법


1. 오른쪽에서 왼쪽 방향으로 내려적음

2. 최초의 1을 만나면 그 다음 비트부터 1은 0으로 0은 1로 바꿈

3. 바꾼 숫자들을  레이블로 해석하면 됨


ex)


*0101 1110 ->127-(32+1)=94


*1100 1100

 --------------

 -011 0011

 32+16+4

 =-52


  s 64 32 16 8 4 2 1

40 ->0 0  1   0  1 0 0 0

80 ->0 1 0   1  0  0 0 0


※ 80을 틸드 --> 비트 부정

(1의 보수 0->1/1->0)


1. 1의 보수로 변환

1010 1111


2. 2의 보수로 계산

-101 0001 --> -81


※ 40을 틸드 --> -41


수에 틸드를 걸면


-(수+1) : 수에다 1을 더하고 부호를 바꾸어 준다


#실습 틸드


   int value = 10;
  
  System.out.println(~value);
  System.out.println(~100);
  System.out.println(~1000);
  System.out.println(~10000);
  




() 연산자 : 단항의 소괄호 연산자는 형변환 연산자이다.



  int value = 10;


  System.out.println((int)5.6);
  System.out.println((int)'A');
  System.out.println((char)65);
  System.out.println(10/3);
  System.out.println(10/(double)3);
  System.out.println(10/3.0);
  System.out.println(10/(double)value);
     //변수한테는  .0을 붙일 수가 없다  (double)로 형변환 시키자
  



증감연산자


   변수++;
   변수--;
   
   ++ : 1을 증가 시키자
   -- : 1을 감소 시키자


  value = 0;
  
  value++;
  System.out.println(value);  //0에서 1로 바껴있다.
  
  --value;
  System.out.println(value);  //1에서 0으로 감소되어 있다.
  
  value++;
  value++;
  value++;
  value++;
  value++;
  System.out.println(value);  //0에서 5로 증가되어 있다.
  
  ///////////////////////////////////////////
  value=0;
  System.out.println(value+1);   //결과값 : 1
  
  value=0;
  value++; 

  //  value = value+1

  //자기자신의 값 이 바뀌어있는것 
  System.out.println(value);    //결과값 : 1




※ 증감 연산자가 다른 연산자하고 같이 쓰인다면..
   
 앞에 있는지,  뒤에 있는지  따져야 한다.
  (전위형)       (후위형)


  value=0;
  int result = value++;  //후위형  뒤에 있다. 나중에 하자

                 value 먼저 result에 넣고 난후 value++계산
  System.out.println("(후)result : " + result + " value "+value);
  
  
  value=0;
  result = ++value; //전위형, 

                  value를 1로 만들고, result에 넣자
  System.out.println("(전)result : " + result + " value "+value);


  


'Programing > Java' 카테고리의 다른 글

Java1 - 08. If 제어문  (0) 2017.04.18
Java1 - 07. 연산자 2  (0) 2017.04.17
Java1 - 05. Scanner 활용/ Dialoginput  (0) 2017.04.13
Java1 - 04. 형변환. scanner(입력문)  (0) 2017.04.12
Java1 - 03. 변수(Variable)  (0) 2017.04.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
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
글 보관함