Output
- print : 단순하게 출력할 때 사용하는 출력문 (개행x)
- println : 한 줄을 출력하고 개행을 한다
- print와 println의 표현법은 System.out.print(문자열 포맷); 으로 동일하다.
- 변수를 함께 사용할 경우 + 로 잇는다.
▷ System.out.println("우리집 식구는 " + num + "명이다");
- printf : print와 printf와 다르게 System.out.printf(문자열 포맷, 값1, 값2);의 형식으로 사용한다.
- %d : 정수
- %c : 문자
- %s : 문자열
- %f : 실수
(소수점 아래를 원하는 만큼 표시하고자 할 때는 %.nf를 사용한다. ▷ 소수점 둘째 자리까지 표시 : %.2f)
이스케이프 시퀀스
: 문자열 내에서 탭, 백슬래시, 작은따옴표, 큰따옴표 등을 코드로 사용하기 위한 방식
- \t : 탭
- \n : 개행
- \\ : 백슬래시
- \' : 작은따옴표
- \" : 큰따옴표
package a.basic
public class Output {
public static void main(String[] args) {
// print
System.out.print("안녕하세요.");
// println
System.out.println("내일부터 장마철이래요.");
System.out.println(505);
// 문자열 + 변수
int number = 20;
System.out.println("예약손님이 무려 " + number + "명이나 된다고!?");
// printf
System.out.printf("제 이름은 %s입니다. 나이는 %d이고 키는 %.1f입니다.", "짱구", 20, 100.6);
// 이스케이프 시퀀스
System.out.println("오늘은 점심으로 짬뽕을 먹었다.\n그런데 짬뽕에 해산물이 없었다.");
System.out.println("그런데 가격은 만 오천 원이었다.\t \"이럴수가!\"");
}
}
Input
Scanner
- Scanner : 키보드로 값을 입력하는 방법
- 사용 시 java.util.Scanner 클래스를 이용한다. ( java.util.* 로도 가능)
- [사용법] Scanner 이름 = new Scanner(System.in);
▷ Scanner sc = new Scanner(System.in);
Scanner를 사용해서 키보드 입력 값 받기
- sc.next()
: 가장 기본적인 형태. 문자열로 입력받는다.
띄어쓰기(공백)를 구분인자로 생각하기에 공백 및 개행(줄 구분)은 저장하지 않는다. - sc.nextLine()
: 사용자가 입력한 값 중 \n(개행문자)를 기준으로 \n을 제외한 나머지 값을 문자열로 가져온다.
공백과 줄 구분까지 저장 가능하다. - sc.nextInt() , sc.nextShort() , sc.nextbyte() , sc.nextFloat() , sc.nextDouble() 등
: 자료형에 따라 다양한 형태가 존재하며, 맞는 형태로 작성해야 한다.
nextLine() 외에는 \n 토큰이 함께 들어오기 때문에 sc.nextLine()을 통해서 비워주어야 한다. ( sc.next()도 동일)
▷ int a = sc.nextInt(); - sc.close()
: Scanner 종료. 필수는 아니지만 더 이상 사용하지 않는 시점에서 닫아주면 좋다.
charAt()
- charAt(index) : 문자열에서 내가 원하는 index의 글자를 가져온다.
( ※ index : 순서를 지칭할 때 사용하는 것. 0부터 시작한다.) - Scanner에는 char를 입력받을 수 있는 방법이 없으므로 charAt()를 이용해야한다.
- 사용자에게 문자 한 개만 입력받는 방법
▷ char ch = sc.next().charAt(0);
package a.basic;
// import
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
// Scanner 선언
Scanner sc = new Scanner(System.in);
String name, intro;
int age;
float height;
char type;
// 문자열 입력 받기
System.out.print("이름 입력 : "); // Scanner로 인해 println을 쓰지 않아도 개행이 된다
name = sc.next();
sc.nextLine();
// 정수 입력 받기
System.out.print("나이 입력 : ");
age = sc.nextInt();
sc.nextLine();
// 실수 입력 받기
System.out.print("키 입력 : ");
height = sc.nextFloat();
sc.nextLine();
// 문자 하나만 입력 받기
System.out.print("혈액형(AB형 제외) : ");
type = sc.next().charAt(0);
// 문자열(공백 포함) 입력 받기
System.out.print("한마디 : ");
intro = sc.nextLine();
System.out.println("===== 프로필 =====");
System.out.println("이름 : " + name);
System.out.println("나이 : " + age);
System.out.println("키 : " + height);
System.out.println("한마디 : " + intro);
// Scanner 닫기
sc.close();
}
}
Variable
변수의 정의
- 값을 기록하고 사용하기위한 메모리 공간. 값을 보관하거나, 보관된 값을 가져와 사용할 수 있다.
- [표현법] 자료형 변수명;
▷ int n; - 자료형 : 변수의 크기 및 모양을 지정해주는 부분
- 변수명 : 변수를 식별하기위해 붙여주는 이름
원시 타입 변수
- 정수 자료형
: 정수(ex. 1, 2, 3…)를 저장하는 자료형.
각 자료형마다 표현할 수 있는 수의 범위가 다르다. (※괄호 안의 숫자 참고)- byte(1)
- short(2)
- int(4)
▷ int n = 10; - long(8)
- 실수 자료형
: 실수(ex. 0.1, 0.02, 3.14…)를 저장하는 자료형.
floot 보다 double이 보다 더 정밀한 수를 표현할 수 있다.- float(4)
▷ float fl1 = 3.14f;
float fl2 = (float) 3.1456;
(실수는 기본이 double이기에 float는 숫자 뒤에 f를 붙이거나, (float)를 숫자 앞에 붙여 사용한다.) - double(8)
- float(4)
- 문자 자료형
: 문자 하나를 담을 수 있는 자료형, 자바는 2바이트 유니코드로 표현한다.
' '를 사용한다. (※ " "은 String이니 주의!)
- char(2)
▷ char ch = 'apple';
- char(2)
- 논리 자료형
: true(참)와 false(거짓)을 저장하는 자료형.- boolean(1)
▷ boolean b1 = (10 > 5); // b1 = true
boolean b2 = (20 == 10); // b2 = false
- boolean(1)
문자열 (String)
- 문자열 같은 경우, 할당해야할 메모리 크기가 너무 가변적이므로 원시타입이 아닌 객체로 변수를 만들어준다.
- [표현법] String 변수명 = new String("문자열"); 또는 String 변수명 = "문자열";
▷ String str = new String("ABCDE FG H");
▷ String str2 = "가나다라 마 바 사";
(※객체 생성 방식이 생략된 방법)
상수 (final)
- 수학에서의 상수는 변하지 않는 값이고, 프로그래밍에서는 한 번만 값을 할당할 수 있는 메모리를 뜻한다.
- [표현법] final 자료형 변수명;
▷ finasl int AGE; - 상수의 변수명은 모두 대문자로 짓는 것이 관례
- 이름이 둘 이상의 단어로 이루어질 경우 언더바로 연결해준다.
▷ final int MY_AGE; - 값을 초기화하면 더 이상 변경할 수 없다.
package a.basic;
public class Variable {
public static void main(String[] args) {
// 정수형 변수
byte by = 10;
short sh = 20;
int in = 30;
long lo = 50;
System.out.println("< 정수형 변수 >");
System.out.println("by : " + by);
System.out.println("sh : " + sh);
System.out.println("in : " + in);
System.out.println("lo : " + lo);
// 실수형 변수
float fl = 4.10f;
double dou = 0.1999;
System.out.println("< 실수형 변수 >");
System.out.println("fl : " + fl);
System.out.println("dou : " + dou);
// 문자 자료형
char ch1 = 'S';
char ch2 = 'O';
char ch3 = '엩';
System.out.println("< 문자 자료형 >");
System.out.println("ch1 : " + ch1);
System.out.println("ch2 : " + ch2);
System.out.println("ch3 : " + ch3);
// 논리 자료형
boolean b1 = (1997 < 2001);
boolean b2 = (1999 >= 1998);
System.out.println("< 논리 자료형 >");
System.out.println("b1 : " + b1);
System.out.println("b2 : " + b2);
// 문자열
String str1 = new String("오목눈이 보호협회");
String str2 = "니가몰알어조랭이떡가튼게";
System.out.println("< 문자열 >");
System.out.println("str1 : " + str1);
System.out.println("str2 : " + str2);
// 상수
final int ERROR_CODE = 404;
System.out.println("< 상수 >");
System.out.println("ERROR_CODE : " + ERROR_CODE);
}
}
Conversion
형변환
: 자료형을 다른 자료형으로 변경해주는 것
- 자동 형변환
- 두 개 이상의 자료형을 연산할 때 하나의 자료형으로 일치 시켜야 연산이 가능하므로, 데이터 손실이 적은 방향으로 자동으로 전환 작업을 해주는 걸 자동(암시적) 형변환이라고 한다.
▷ int a = 1;
float b = 2.3f;
double c = (a + b); // 이때 a와 b가 자동으로 double로 변환되어 계산된다.
- 두 개 이상의 자료형을 연산할 때 하나의 자료형으로 일치 시켜야 연산이 가능하므로, 데이터 손실이 적은 방향으로 자동으로 전환 작업을 해주는 걸 자동(암시적) 형변환이라고 한다.
- 명시적 형변환
- 값의 범위가 큰 자료형을 더 작은 범위의 자료형으로 변환할 때 사용한다.
- 자동으로 컴파일러 해주지 않기 때문에 프로그래머가 명시적으로 진행한다.
▷ double pi = 3.14;
int number = (int) pi; - 강제로 변환하는 것이기에, 데이터 손실을 감수해야하는 방법이다.
package a.basic;
import java.util.Scanner;
public class Coversion {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 암시적 형변환
System.out.println("< 암시적 형변환 : 사다리꼴의 넓이 구하기 >");
float upper, lower, height;
double area;
System.out.print("윗변 길이 입력 : ");
upper = sc.nextFloat();
System.out.print("밑변 길이 입력 : ");
lower = sc.nextFloat();
System.out.print("높이 입력 : ");
height = sc.nextFloat();
area = (uppder + lower) / 2 * height;
System.out.println("사다리꼴의 넓이 : " + area + "\n");
// 명시적 형변환
System.out.println("< 명시적 형변환 : 밭의 울타리 개수 구하기>");
System.out.print("가로 길이(소수점 포함) : ");
float width = sc.nextFloat();
System.out.print("세로 길이(소수점 포함) : ");
float height = sc.nextFloat();
System.out.print("울타리 길이(소수점 포함) : ");
float length = sc.nextFloat();
int pence = (int)((width*2 + height * 2)/(length) + 1);
System.out.println("필요한 울타리의 개수 : " + pence + "개");
}
}
'JavaStudy' 카테고리의 다른 글
e.array (0) | 2024.07.08 |
---|---|
d.loop (1) | 2024.07.05 |
c.control (0) | 2024.07.04 |
b.operator (0) | 2024.07.03 |