⏰ 2024.10.11 (D+2)
🖥️ 화면에 글자 출력할 때는 System.out.print()을 사용하며, 괄호 () 안에 출력하고자 하는 내용을 넣으면 된다.
📌 예시]
System.out.print("Hello World"); //실행결과 : Hello World
System.out.print(3+5); // 실행결과 : 8
System.out.print("3+5"); // 실행결과 : 3+5
🔖 중요]
📖 예제]
class Ex2-1{
public static void main(String args[]){
-
system.out.println("Hello World"); //실행결과 : Hello World 출력 및 줄바꿈 한다.
system.out.print("Hello"); // 실행결과 : Hello 출력 및 줄바꿈 안한다.
system.out.println("World"); // 실행결과 : World 출력 및 줄바꿈 한다.
📖 예제]
class Ex2-2{
public static void main(String args[]){
-
system.out.println("Hello, World"); //실행결과 : Hello, World 출력 및 줄바꿈 한다.
system.out.print("3+5="); // 실행결과 : 3+5= 출력 및 줄바꿈 안한다.
system.out.println(3+5); // 실행결과 : 화면에 8 출력
사칙연산(+,-,*,/)이 포함된 식(expression)의 결과를 화면에 출력하려면 아래와 같이 괄호 안에 식을 넣기만 하면 된다.
📌 예시]
System.out.println(5+3) // 괄호안의 식을 계산
System.out.println(8) // 실행결과 8이 출력
📖 예제]
class Ex2-3{
public static void main(String args[]){
-
system.out.println(5+3); // 실행결과 : 화면에 8 출력
system.out.println(5-3); // 실행결과 : 화면에 2 출력
system.out.println(5*3); // 실행결과 : 화면에 15 출력
system.out.println(5/3); // 실행결과 : 화면에 1 출력
변수 : 하나의 값을 저장할 수 있는 저장공간
📌 예시]
변수타입 변수이름; // 변수를 선언하는 방법
💡 주의사항]
❗ 한 줄로 간단히 정리하는 경우,
int x; // 변수의 선언
x = 5; // 변수에 대입
→ int x = 5; //변수의 선언 및 대입을 동시에 입력
📖 예제]
class Ex2-4{
public static void main(String args[]){
-
int x = 5;
system.out.println(x); // 실행결과 : 화면에 5 출력
x = 10;
system.out.println(x); // 실행결과 : 화면에 10 출력
📖 예제]
class Ex2-5{
public static void main(String args[]){
-
int x = 10;
int y = 5;
-
system.out.println(x+y); // 실행결과 : 화면에 15 출력
system.out.println(x-y); // 실행결과 : 화면에 5 출력
system.out.println(x*y); // 실행결과 : 화면에 50 출력
system.out.println(x/y); // 실행결과 : 화면에 2 출력
변수를 선언할 때, 변수에 저장할 값의 종류에 따라 변수의 타입을 선택
🔢 숫자
1) int, long : 정수(integer)를 저장하기 위한 타입(20억이 넘을 땐 long)
2) float, double : 실수(floating-point number)를 저장하기 위한 타입
(float는 오차없이 7자리, double은 15자리)
🔠 문자
1) char : 문자(character)를 저장하기 위한 타입
2) String : 여러 문자(문자열. String)를 저장하기 위한 타입
📖 예제]
class Ex2-6{
public static void main(String args[]){
-
int x = 100; // 정수를 저장할 변수의 타입은 int
double pi = 3.14; // 실수를 저장할 변수의 타입은 double
char ch = 'a'; // 문자(1개)를 저장할 변수의 타입은 char
String = "abc"; // 여러 문자(0~n개)를 저장할 변수의 타입은 Stringsystem.out.println(x); // 실행결과 : 화면에 100 출력
system.out.println(pi); // 실행결과 : 화면에 3.14 출력
system.out.println(a); // 실행결과 : 화면에 a 출력
system.out.println(abc); // 실행결과 : 화면에 abc 출력
상수(constant)는 변수와 마찬가지로 '값을 저장할 수 있는 공간'이지만 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다.
변수의 타입 앞에 키워드 'final'을 붙여주면 된다.
📌 예시]
final int MAX_SPEED = 10;
💡 주의사항]
리터럴(literal)는 그 자체로 값을 의미하는 것
| 종류 | 리터럴 | 접미사 |
|---|---|---|
| 논리형 | false, true | 없음 |
| 정수형 | 123, 0b0101, 077, 0xFF, 100L | L |
| 실수형 | 3.14, 3.0e8, 1.4f, 0x1, 0p-1 | f, d |
| 문자형 | 'A', '1', '\n' | 없음 |
| 문자열 | "ABC", "123", "A", "true" | 없음 |
🔖 중요]
💡 주의사항]
문자 리터럴 : 'A'와 같이 작은따옴표로 문자 하나를 감싼 것
문자열 리터럴 : 두 문자 이상을 큰따옴표로 감싼 것
📌 예시]
char ch = 'J' //char ch = 'Java'; X
String name = "Java" //변수 name에 문자열 리터럴 "Java"를 저장
🔖 중요]
📌 예시]
String str = ""; //내용이 없는 빈 문자열
char ch = '' //에러 ''안에 반드시 하나의 문자가 필요
char ch = ' ' //공백(blank)로 변수 ch를 초기화
두 문자열을 합칠 때, 덧셈(+)을 사용하여 문자열 결합
📌 예시]
String name = "Ja"+"va"; //실행결과 : Java
String str = name+8.0; //실행결과 : Java8.0
❗ 덧셈 연산자(+)는 피연산자가 모두 숫자일 때는 두수를 더하지만,
어느 한쪽이 String이면 나머지 한 쪽을 String으로 반환한 다음 두 String을 결합 처리
⭐ 덧셈 연산자(+)는 왼쪽에서 오른쪽의 방향으로 연산 수행
문자열 + any type → 문자열 + 문자열 → 문자열
any type + 문자열 → 문자열 + 문자열 → 문자열
두 컵에 담긴 내용물을 바꾸려면 빈 컵이 필요한 것처럼, 값을 임시로 저장할 변수가 하나 더 필요하다.
int tmp // 임시로 값을 저장하기 위한 변수(빈 컵 역할)
-
tmp = x; // x의 값을 tmp에 저장
x = y; // y의 값을 x에 저장
y = tmp; //tmp에 저장된 값을 y에 저장
📖 예제]
class Ex2-8{
public static void main(String args[]){
-
int x = 10, y = 5;
system.out.println("x="+x); // 실행결과 : 화면에 x=10 출력
system.out.println("y="+y); // 실행결과 : 화면에 y=5 출력
-
int tmp = x
x = y;
t = tmp;
system.out.println("x="+x); // 실행결과 : 화면에 x=5 출력
system.out.println("y="+y); // 실행결과 : 화면에 y=10 출력
- 값의 종류는 크게 '문자와 숫자'로 나눌 수 있으며, 숫자는 다시 '정수와 실수'로 나눌 수 있다.
- 값의 종류에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것이 자료형(data type)이다.
기본형과 참조형
기본형(primitive type)
논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)
계산을 위한 실제 값을 저장한다. (기본형 8개)참조형(reference type)
객체의 주소를 저장한다. 8개의 기본형을 제외한 나머지 타입
기본형의 종류와 범위
| 종류/크기 | 1byte | 2byte | 4byte | 8byte |
|---|---|---|---|---|
| 논리형 | boolean | - | - | - |
| 문자형 | - | char | - | - |
| 정수형 | byte | short | ★int | long |
| 실수형 | - | - | float | ★double |
- printf는 지시자를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능
- 지시자는 값을 어떻게 출력할 것인지를 지시해주는 역할
- 정수형 변수에 저장된 값을 10진 정수로 출력할 때는 지시자 '%d' 를 사용
println과 달리 printf는 출력 후 줄바꿈을 하지 않는다.
줄바꿈을 하려면 지시자 '%n' 을 함께 작성하여 줄바꿈을 해야한다.
| 지시자 | 설명 |
|---|---|
| %d | 10진 정수의 형식으로 출력 |
| %x | 16진 정수의 형식으로 출력 |
| %f | 부동 소수점의 형식으로 출력 |
| %c | 문자로 출력 |
| %s | 문자열로 출력 |
💡 실수형 값을 출력에 사용되는 지시자
- %f : 기본적으로 소수점 아래 6자리까지만 출력
- %e : 지수형태로 출력할 때 사용
- %g : 값을 간략하게 표현할 때 사용
📌 그 외에 출력에 사용되는 지시자
%s : 숫자를 추가하면 원하는 만큼의 출력공간을 확보하거나 문자열의 일부만 출력
지정된 숫자보다, 문자열의 길이가 작으면 빈자리는 공백으로 출력된다.
'-': 좌측 끝에 문자열을 붙이려고 하는 경우
'.': 문자열의 일부만 출력하려는 경우
import java.util.Scanner; // Scanner 클래스를 사용하기 위해 추가
Scanner 클랙스의 객체를 생성
Scanner scanner = new Scanner(System.in); // Scanner클래스의 객체를 생성
nextLine() 메서드 호출
: 입력대기 상태에 있다가 입력을 마치고 Enter를 누르면 입력한 내용이 문자열로 반환
String input = scanner.nextLine(); // 입력받은 내용을 input에 저장
입력 받을 문자열을 숫자로 변환
: Interger.parseInt 메서드를 이용하여 문자열을 int타입의 정수로 변환
int num = Interger.parseInt(input); // 입력받은 내용을 int타입의 값으로 변환
int num = scanner.nextInt(); // 정수를 입력 받아서 변수 num에 저장
: 연산과정에서 해당 타입이 표현할 수 있는 값의 범위를 넘어서는 것
정수형 타입이 표현할 수 있는 최대값에 1을 더하면 최소값
최소값에서 1을 빼면 최대값최대값 + 1 → 최소값
최소값 - 1 → 최대값
- 부호없는 정수와 부호있는 정수는 표현범위 즉, 최대값과 최소값이 다르기 때문에 오버플로우가 발생되는 시점이 다르다.
- 부호없는 정수는 2진수 '0000'이 될 때 오버플로우가 발생하고, 부호있는 정수는 부호비트가 0에서 1일 될 때 오버플로우가 발생한다.
- 숫자를 문자로 변환 - 숫자에 '0'을 더한다.
(char)(3 + '0') → '3'
- 문자를 숫자로 변환 - 문자에서 '0'을 뺀다.
'3' - '0' → 3
- 숫자를 문자열로 변환 - 숫자에 빈 문자열("")을 더한다.
3 + "" → "3"
- 문자열을 숫자로 변환 - lnteger.parselnt() 또는 Double.parseDouble()을 사용한다.
Interger.parseInt("3") → 3
Double.parseDouble("3.14") → 3.14
- 문자열을 문자로 변환 - charAt(0)을 사용한다.
"3".charAt(0) → '3'
- 문자를 문자열로 변환 - 빈 문자열("")을 더한다.
'3' + "" → "3"