본문 바로가기
코딩

2022.02.08_2일차_연산자와 제어문(1)

by 흥뷰자 2022. 2. 16.

02일차 학습내용

1. 입력문 : 입력장치에서 입력받는 값을 자바 응용프로그램으로 보냄
2. 연산자 operator : 부호. 종류/ 연산 우선순위
3. 제어문 : 조건이나 반복, 보조제어 등의 명령을 내리는 키워드

 

1. 입력문

 

: 사용자의 하드웨어로 입력되는 신호를 받아오는 명령

 

1.1. System.in : 키 입력을 받아오면

1.2. Scanner : 자바패키지에서 원하는 타입으로 변환시켜줍니다.

     사용을 위해 작성하는 방법은 임포트, 객체생성, 입력, 닫기 4단계입니다.

 

               #1. import java.util.Scanner; <클래스 외부에 작성> 임포트해온다.

                                                    java의 util파일에 있는 객체를 가져다쓰겠다~~

               #2. Snanner sc = new Scanner(System.in); <여기부터는 클래스 내부에 작성> 외부의 입력신호받을준비

                                                   스캐너 객체를 생성해서 sc변수에 담아놓겠다~~~

               #3. String 변수명 = sc.nextLine(); 입력받기

                                                   입력받은 값을 변수에 담아주세요~~

               #4. sc.close(); 스캐너 객체 닫기. 다 썼으면 통로 닫아줘야지

 

* 스캐너에서 입력받아오는 데이터 타입은 스트링타입이기 때문에

  인트타입과 같은 숫자변수에 넣어 사용할 경우 형변환이 필요합니다. 형 변환에 사용하는 클래스는 Integer, Double, Long, ... 직관적으로 데이터 타입이 클래스 명으로 되어있습니다. 클래스 내부 메서드 명 역시 parseInt, parseDouble처럼 같은 모양으로 되어 있습니다.

                               


                 

2. 연산자 operator 

 

2.1. 종류

 

ㅡ 단항연산자 : 항을 하나만 갖는다. +2 (양수), -2(음수), ++(더하기 1), --(빼기 1), !(부정)

ㅡ 이항연산자 : 항을 두개를 갖는다. 산술 + 비교 + 논리연산자

     2+2 (더하기), -(빼기), *(곱하기), /(나누기), %(나머지) 

     <, <=, >, >=, ==(같다), !=(같지 않다)

     $$ (그리고), ||(또는)

ㅡ 삼항연산자 : 항을 세 개 갖는다. A?B:C  (A이면, B를 실행하고, 그렇지 않으면 C를 실행)

ㅡ 대입연산자 : A=B (B를 A에 대입만 한다.)

ㅡ 복합대입연산자 : 우측에서 계산한 결과를 좌측에 대입한다. a += b (a = a+b ), -=, *= /=, %= 

                          기존에 이항연산자 + 대입연산자 기호를 합쳐놓은 것.

ㅡ 기타 쉬프트와 비트 연산자

 

2.2. 연산자 우선순위 (연산 순서)

우리가 보통 알고있는 순서는 *, /가 먼저 계산하고 + - 나중에 계산한다 정도까지지만

연산자가 위처럼 많아졌으니까 그 순서도 알고있어야 합니다.

(복합)대입연산자가 가장 마지막에 옵니다. 나머지는 한번 느낌만 훑어보고 실제 계산할 때 익힐수도 있습니다.

단항연산자 : ++ -- (전위형)
     + - (양수음수) ++ -- (후위형) !
형변환 : (타입)
산술연산자 : * / %
     + - (덧셈 뺄셈)
(쉬프트연산자)
비교연산자 : < <= > >= == != instanceof
(비트연산자)
논리연산자 : && ///////이게먼저
     || 
삼항연산자 : ? : 
(복합)대입연산자 : = += -= *= /= %=  ///////

* 전위형 후위형은 계산을 출력 전에 할지, 출력 후에 할지 차이입니다.

* 논리연산자에서 그리고와 또는에서 우선순위는 그리고 먼저 해야 합니다.

 

+ 추가

  기본적으로 문자열의 +은 문자의 나열로 가능.. 

  비교연산자 ==은 참조형에 사용 불가. 글자들간의 비교는 .equals()메서드(lang에 포함된 기능) 사용해야


3. 제어문

 

: 조건이나 반복을 할 때 쓰는 키워드.

 

조건에는 if switch

반복문에는 while, do-while, for 반복문이 있습니다.

+ 보조제어문에는 제어문 내에서 보조적으로 사용되는 break(강제종료), continue(건너띄고 계속 이어서) 키워드가 있습니다.

if조건문  switch조건문 = 다중선택문
  하나의 변수값을 평가하여 각 값에 대해 개별적으로 처리.
비교할 값이 많다면 가독성 면에서 좋을 수 있음.
if문으로 모두 변환 가능, 거꾸로는 불가

실행속도가 약간 빠르나 체감상 느껴질 정도는 아님
연산이 많은 경우 가독성에서 좋지만 한계가 있어 잘 안씀
if (조건식) {
              //조건이 참일 때 수행할 명령
}
switch(변수) {
case 값1: 
           // 변수 == 값1 인 경우 실행할 명령
           break; 
case 값2:
           // 변수 == 값2 인 경우 실행할 명령
           break; 
...
default;
           // 위 값이 모두 일치하지 않을 경우 수행할 명령
           break;
}

if(조건식){
             // 조건이 참일 때 수행할 명령
}else {
             // 조건이 거짓일 때 수행할 명령
}
변수에 들어갈 타입
: int, char, String 명확한 정수나 글자만 가능
 (flaot, double 이런거 불가능)
if(조건식1){
             // 조건1이 참일 때 수행할 명령
}else if (조건식2){
             // 조건식2가 거짓일 때 수행할 명령
}
if와 달리 순서는 상관없이 해당하는 걸 찾지만 
가독성을 고려해서 코드를 작성해야쥬

 

댓글