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와 달리 순서는 상관없이 해당하는 걸 찾지만 가독성을 고려해서 코드를 작성해야쥬 |
'코딩' 카테고리의 다른 글
2022.02.14_6일차_메서드와 메서드 오버로딩 (0) | 2022.02.20 |
---|---|
2022.02.11_5일차_클래스와 객체, 변수의 종류 (0) | 2022.02.19 |
2022.02.10_4일차_다차원배열 (0) | 2022.02.18 |
2022.02.09_3일차_제어문(2)과 배열 (0) | 2022.02.17 |
2022.02.07_1일차_변수와 데이터타입 (0) | 2022.02.15 |
댓글