학습목표
- 자료형과 상수 이해하기
- 변수 이해하기
- 표준 입출력 이해하기
자료형(Data Type) 이해하기
데이터의 종류에 따라 컴퓨터 메모리의 크기를 정해놓은 것
데이터의 종류
- 정수
- 실수
- 문자
- 문자열
자료형의 종류
- 기본 자료형
- 논리형 : boolean, 1byte, true/false
- 정수형
- byte : 1byte
- short : 2byte
- int : 4byte
- long : 8byte
- 실수형
- float : 4byte
- double : 8byte
- 문자형
- char : 2byte
- 참조형 자료형
- 문자열 : String
- 배열
- 클래스
상수(constant) 이해하기
프로그램 수행 중 값이 변하지 않는 데이터
논리 상수값
- 참 : true
- 거짓 : false
정수 상수값
- 자료형이 표현할 수 있는 값의 범위 내에서 사용하여야 함
- 접미사 'L' 또는 'I' (일반적으로 대문자 사용)
- 'L'을 사용하면 long형 상수값이 됨
- 'L'을 사용하지 않으면 int형 상수값이 됨
- 진수 표현
- 10진수 : 123
- 16진수 : 0x123 (접두사 : 0x)
- 8진수 : 0123 (접두사 : 0)
- 정수 상수의 표현
- byte : 123, 0x7B, 0173
- short : 123, 0x7B, 0173
- int : 123, 0x7B, 0173
- long : 123L, 0x7BL, 0173L (접미사 L)
실수 상수값
- 자료형이 표현할 수 있는 값의 범위 내에서 사용하여야 함
- 접미사 'f' 또는 'F' (일반적으로 소문자 사용)
- 'f'을 사용하면 float형 상수값이 됨
- 'f'을 사용하지 않으면 double형 상수값이 됨
- 실수 상수의 표현
- float : 123.45f
- double : 123.45
- 지수 형식 표기 방법
- 알파벳 소문자 e 또는 대문자 E를 이용
- 가수부와 지수부를 분리하여 표현
문자/문자열 상수값
- 문자(char) 상수 : 작은 따옴표 사용 ex. '자', 'a', '*'
- 문자열(String) 상수 : 큰 따옴표 사용 ex. "자바 프로그래밍"
변수 이해하기
식별자(Identifier)란?
프로그래머가 필요시 프로그램 내에 정의 또는 선언하여 사용하는 이름
ex. 변수 이름, 메소드 이름 등
식별자 만드는 규칙
- 알파벳 대소문자, 한글, 숫자, 언더바, $ 를 사용, 이외는 사용불가(공백 포함)
- 식별자 첫 문자 : 알파벳 대소문자, 언더바, 한글로 시작하여야 함, 숫자는 사용불가
- 예약어는 사용불가
- 알파벳 대소문자 구분
- ex. start, Total, _sum, 합계
예약어(Reserved Word)란?
- 자바 언어에서 사용하는 문법적 단어들
- 식별자로 사용할 수 없음
- ex. byte, short, int, String, if, switch 등
변수(Variables)란?
- 데이터를 저장하는 컴퓨터 메모리 공간을 가리키는 식별자
- 변수에 데이터를 저장, 수정, 읽기 가능
- 프로그램이 실행되는 동안에만 변수의 데이터 값이 유효함
- 데이터의 자료형 크기에 따라 컴퓨터 메모리 공간이 확보됨
변수 사용하기
1) 변수 선언 방법
자료형 변수 = 상수값;
int total = 100;
// or
int total;
total = 100;
2) 변수 이름 표기법
- 가독성 있게 표현
- 의미 없는 변수 이름은 사용하지 않음
- 변수 사용 목적에 맞게 표기
- 변수 이름 표기법
- 카멜 표기법 : 소문자로 시작, 두번째 단어부터 대문자로 시작 ex. scoreCount, myTotal
- 스네이크 표기법 : 단어 사이를 언더바로 연결 ex. score_count, my_total
3) 변수 선언 위치와 사용 범위
- 변수 선언 위치
- 프로그램 내에 원하는 위치에 선언 가능(중복 선언 불가)
- 선언하는 위치에 따라서 사용 범위가 정해짐
- 메소드 내부에 선언한 변수 사용범위
- 변수 선언 아래쪽으로 사용 가능
- 변수의 데이터 표현 범위
- 오버플로(Overflow)
- 변수의 자료형에 따라 표현할 수 있는 데이터의 최소값과 최대값이 있음
- 변수가 표현할 수 있는 최대값보다 큰 값이 변수에 지정될 때 발생
- 오버플로 발생 시 문법적 오류가 발생함
- ex. short test1 = 32768; (short 자료형: -32,768 ~ 32,767)
- 언더플로(Underflow)
- 변수가 표현할 수 있는 최소값보다 작은 값이 변수에 지정될 때 발생
- 언더플로 발생 시 문법적 오류가 발생함
- ex. short test1 = -32769; (short 자료형: -32,768 ~ 32,767)
- 오버플로(Overflow)
자료형 변환
A라는 자료형의 값을 B라는 자료형 값으로 변환하는 것
- 자동 자료형 변환
- 메모리 크기가 작은 자료형의 값을 메모리 크기가 큰 자료형 값으로 변환하는 것
- byte -> short -> int, float -> long, double
- 강제 자료형 변환
- 메모리 크기가 큰 자료형의 값을 메모리 크기가 작은 자료형 값으로 변환하는 것
- 변수의 값은 작은 자료형 크기에 맞는 값이어야 함 (오버플로 주의)
- 실수형 자료형의 값이 정수형 자료형의 값으로 변환될 때는 소수점 이하는 버려짐
- byte <- short <- int, float <- long, double
- 캐스트(cast) 연산자를 사용하여 강제 자료형 변환
- (자료형)변수이름
- by = (byte)sh;
- sh = (short)in;
실습
public class UseVariables {
public static void main(String[] args) {
// 변수이름 표기법, 예약어 사용불가
int countNum = 0; // 카멜 표기법
int my_total; // 스네이크 표기법
my_total = 0;
// 자료형 및 상수, 변수 선언 및 초기화
boolean bo_t = true;
boolean bo_f = false;
byte in_by = 127;
// byte in_by_over = 128; // 오버플로우
// byte in_by_under = -129; // 언더플로우
short in_sh = 32767;
int in_int = 100;
long in_lo = 123L;
float fl_1 = 123.45f;
float fl_2 = 1.2345E+2f;
double do_1 = 123.45;
double do_2 = 1.2345E-2;
char ch_1 = '자';
char ch_2 = 'A';
char ch_3 = '@';
String st_1 = "자바 프로그래밍";
String st_2 = "JAVA PROGRAMMING";
int countTotal = 0;
countNum = 10;
}
}
표준 입출력 이해하기
System.out.println() 메소드
- 화면(표준 출력)에 내용을 출력해 주는 메소드
- 화면에 내용을 출력한 후 줄 바꿈 실행됨
- 화면에 출력될 항목들은 "+" 기호로 연결함
System.out.print() 메소드
- 화면에 내용을 출력한 후 줄 바꿈 실행 안 함
표준 입력 메소드
- Scanner 클래스를 import 하기
- 표준 입력 객체(System.in)을 이용하여 Scanner 클래스의 객체 생성하기
- Scanner 객체를 이용하여 표준 입력(키보드)로부터 데이터 입력 받기
- int a = s.nextInt();
- double b = s.nextDouble();
- String c = s.nextLine();
실습
import java.util.Scanner;
public class UseInOut {
public static void main(String[] args) {
System.out.println(100);
System.out.println(100+200);
boolean bo_t = true;
boolean to_f = false;
System.out.println("BOOLEAN : " + bo_t + ", " + to_f);
byte in_by = 127;
short in_sh = 32767;
int in_int = 100;
long in_lo = 123L;
System.out.println("BYTE : " + in_by + ", SHORT : " + in_sh +
", INT :" + in_int + ", LONG : " + in_lo);
float f1_1 = 123.45f;
float f1_2 = 1.2345E+2f;
double do_1 = 123.45;
double do_2 = 1.2345E-2;
System.out.println("FLOAT : " + f1_1 + ", " + f1_2 + ", DOUBLE : " + do_1 + ", " + do_2);
char ch_1 = '자';
char ch_2 = 'A';
char ch_3 = '@';
System.out.print("CH1 : " + ch_1);
System.out.print(", CH2 : " + ch_2);
System.out.print(", CH3 : " + ch_3);
String st_1 = "자바 프로그래밍";
String st_2 = "JAVA PROGRAMMING";
System.out.println();
System.out.print(st_1+"(");
System.out.print(st_2+")");
System.out.println();
// 키보드 입력
Scanner s = new Scanner(System.in);
System.out.print("정수를 입력하시오 : ");
int input_int = s.nextInt();
System.out.println("입력받은 값은 : " + input_int);
System.out.print("실수를 입력하시오 : ");
double input_double = s.nextDouble();
System.out.println("입력받은 값은 : " + input_double);
System.out.print("문자열을 입력하시오 : ");
String input_string = s.nextLine();
input_string = s.nextLine();
System.out.println("입력받은 값은 : " + input_string);
}
}
100
300
BOOLEAN : true, false
BYTE : 127, SHORT : 32767, INT :100, LONG : 123
FLOAT : 123.45, 123.45, DOUBLE : 123.45, 0.012345
CH1 : 자, CH2 : A, CH3 : @
자바 프로그래밍(JAVA PROGRAMMING)
정수를 입력하시오 : 3
입력받은 값은 : 3
실수를 입력하시오 : 3.45
입력받은 값은 : 3.45
문자열을 입력하시오 : JAVA
입력받은 값은 : JAVA
'~를 입력하시오' 는 Scanner를 이용하여 입력받은 값이다.
String에서 nextLine()을 1번 쓰면 "문자열을 입력하시오 : 입력받은 값은 :" 과 같이 출력된다. 앞에서 숫자 입력시 엔터값을 처리하기 위해 nextLine()을 2번 사용한다.
적용하기
1) 정수 2개를 키보드에서 입력 받아 변수에 저장하고, 두 개의 정수를 덧셈하여 결과를 화면에 출력하시오.
2) 실수 2개를 키보드에서 입력 받아 변수에 저장하고, 두 개의 실수를 덧셈하여 결과를 화면에 출력하시오.
3) 문자열 2개를 키보드에서 입력 받아 변수에 저장하고, 두 개의 문자열을 "+"로 연산하여 결과를 화면에 출력하시오.
import java.util.Scanner;
public class UseInOut {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("정수 a를 입력하세요 : ");
int a = s.nextInt();
System.out.print("정수 b를 입력하세요 : ");
int b = s.nextInt();
System.out.println("두 정수의 합은 " + (a + b) + "입니다.");
System.out.print("실수 c를 입력하세요 : ");
float c = s.nextFloat();
System.out.print("실수 d를 입력하세요 : ");
float d = s.nextFloat();
System.out.println("두 실수의 합은 " + (c+d) + "입니다.");
System.out.print("첫 번째 문자열을 입력하세요 : ");
String str1 = s.nextLine();
str1 = s.nextLine();
System.out.print("두 번째 문자열을 입력하세요 : ");
String str2 = s.nextLine();
System.out.println("완성된 문장은 " + (str1 + " " + str2) + "입니다.");
}
}
정수 a를 입력하세요 : 60
정수 b를 입력하세요 : 10
두 정수의 합은 70입니다.
실수 c를 입력하세요 : 10.5
실수 d를 입력하세요 : 20.6
두 실수의 합은 31.1입니다.
첫 번째 문자열을 입력하세요 : JAVA
두 번째 문자열을 입력하세요 : 어려워
완성된 문장은 JAVA 어려워입니다.
'온라인 강좌 > 안드로이드 프로그래밍을 위한 자바기초' 카테고리의 다른 글
6차시 클래스를 이용한 객체지향 프로그래밍 기본 문법 이해하기 (0) | 2023.07.10 |
---|---|
5차시 배열의 기본 문법 이해하기 (0) | 2023.07.09 |
4차시 조건문과 반복문의 기본 문법 이해하기 (0) | 2023.07.08 |
3차시 연산자의 기본 문법 이해하기 (0) | 2023.07.08 |
1차시 JAVA 언어 특성 이해하기 (0) | 2023.07.06 |