[2일차]DO IT 자바프로그래밍입문 상수와 리터럴
2-4 상수와 리터럴
1)상수 선언하기
상수? 변하지 않는 값
Q. 왜 MAX_NUM 값 100 안나오지?
final 필드에 int 정수값 선언하기
max 값 100 지정하고 싶다. 간절히
->A. 왜냐하면 "MAX_NUM"/ "MIN_NUM" 을 넣었기 때문이지!!!
int값은 MAX_NUM으로 넣었는데 어떻게 상수도 아닌 문자열을 넣는거니!!! 해결OK
2) 상수를 사용하면 편리한 이유
프로그램 내부에서 반복적으로 사용할 때 사용 , 상수로 선언한 부분의 값만 변경하면 매우 편함
3)리터럴
(1)모든 숫자, 문자, 논리값의 통칭
(2) 프로그램이 시작할 떄 시스템에 같이 로딩 되어서 특정 메모리 공간인 상수 풀에 놓인다.
EX) long num은 4바이트(정수 메모리 크기)에 다 안들어간다. long형 표시할때 쓰는 방법
리터럴+L 쓰기
float PI=3.14F
2-5 형변환
1)형변환 ▶묵시적 변환(자동 형 변환)/ ▶ 명시적 변환(강제형 변환)
-자료형이 각각 다를때(ex.정수형, 실수형), 하나의 자료형으로 통일하고 연산 해야한다.
자료를 통일하는 방법= 형변환
2) 묵시적 변환
바이트 크기가 작은 자료형에서 큰 자료형으로의 대입
(1) 덜 정밀한 자료형 → 더 정밀한 자료형
정수형<실수형
(2) 연산중 자동 변환
int iNum=20;
float fNum=iNum; // 실수 형으로 변환
double dNum;
dNum=fNum+ iNum; 두 변수를 더한 값이 double 형으로 변환
① fnum+inum= float형으로 변환
② dnum= fnum+inum 에 대입 하면 double 형이 됨
3) 명시적 형변환
(1) 바이트 크기가 큰 자료형 →작은 자료형으로 대입 \
int iNum=10;
byte bNum=(byte)iNum;// 강제로 형을 바꿀때 () 사용한다!! 오!!
강제 형 변환 (자료형 이름) 써줘야 함. 자료 손실 aka.작은 자료형 이상의 자료는 자료 손실난다.
(2) 더 정밀한 자료형 →덜 정밀한 자료형
▶부동소수점방식
기수부+지수부로 나누는 방식
3-1 기본연산자
1)항과 연산자 (연산자= 연산에 사용하는 기호)
2)대입 연산자
-이항 연산자 중 우선순위 젤 낮음
int age=24; //나이를 의미하는 age 변수에 24 대입
3)부호 연산자
(1)-연산자
★-연산자만 쓴다고 값이 음수가 되는거 아님
4)산술 연산자
5) 증가/감소 연산자
val=++num num 1 증가하고 val 변수에 대입
int value=10;
int num=++val; // ++라는 연산자가 피연산자 val 앞에 위치하면 문장 끝(;)전에 피연산자값이 1증가/num에 11 대입
6) 관계연산자=비교 연산자(결과값이 항상 참 또는 거직으로 반환)
int num1=10;
int num2=20;
boolean flag2 = (num1>0)&&(num2>0);
System.out.println(flag2);// flag2는 참
boolean flag2 = (num1<0)||(num2>0);
System.out.println(flag2);
q.
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Duplicate local variable flag2
ㅎ... 중복이래
flag 변수
-> 조건에 따라 true혹은 false값을 넣어주는 boolean형 변수
a. 어쩔??
7)논리연산자
8)복합대입연산자
9)조건 연산자
Q.
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Type mismatch: cannot convert from String to char
Type mismatch: cannot convert from String to char
ㅎ.....
A.
(fatherAge>motherAge) ? 'T':'f';// "Y"→'Y' 로 바꿔줘요. 젭발
3-2 비트 연산자
비트 연산= 임의의 숫자를 만들거나 마스킹(특정 비트를 꺼내는것)
4. 제어흐름 이해하기
4-1. 조건문
1)if 문과 if -else 문
2)if -else if -else 문
package ifexample;
public class IfExample1 {
public static void main(String[] args) {
int age=65;
int charge;
if(age<8)
{charge=1000;
System.out.println("취학 전 아동입니다.");
}
else if(age<14)
{charge=2000;
System.out.println("초등학생입니다.");}
else if(age<20)
{charge=2500;
System.out.println("청소년입니다.");}
else if(age>60)
{charge=0;
System.out.println("경로우대입니다.행복하세요");}
}
}
if if문은 조건마다 비교해서 못쓰겠다.