출력문
public class Output {
public static void main(String[] args) {
//출력문
//print() -> 일반적인 출력문으로 ()안에 있는 값을 화면에 출력함
System.out.print("안녕하세요.");
System.out.print("안녕하세요.\n");
//println() -> 개행문자를 포함한 출력문
System.out.println("안녕하세요.");
System.out.println("안녕하세요.");
//printf(문자열 포멧, 값1, 값2, 값3...) -> 문자열을 이용한 출력문
String name = "홍길동";
int age = 20;
System.out.println("저는 " + name + "이고 나이는 " + age + "입니다.");
System.out.printf("저는 %s이고 나이는 %d입니다.", name, age);
}
}
포맷안에서 사용할 수 있는 키워드
%d : 정수
%c : 문자(char 한글자)
%s : 문자열
%f : 실수
변수 선언
변수 : 값을 기록하고 사용하기 위한 메모리 공간
[표현식]
자료형 변수이름;
자료형 : 변수가 사용할 메모리 크기에 따라서 지정
변수이름 : 변수를 식별하기 위한 붙여주는 이름
public class Variable {
public static void main(String[] args) {
//정수형 변수 num 선언
int num;
//정수형 변수 num에 10이라는 값을 대입해라
num = 10;
System.out.println(num);
//참과 거짓을 표현하는 자료형으로 isTrue라는 이름의 변수를 선언
boolean isTrue = false; //선언과 동시에 false라는 값을 대입
isTrue = true;
System.out.println(isTrue);
//실수형(소수점 6자리까지 사용) 자료형 num2라는 이름의 변수를 선언
float num2;
num2 = 3.141592f; //f 실수는 double로 설정되어 있기 때문에, f(float)를 숫자 뒤에 붙여야 한다.
System.out.printf("%.3f", num2);
//---------------------------------------------------------------
//원시타입 : 가장 기본적인 데이터타입, 값 자체를 저장하며 추가적인 속성이 없다.
/*
* 정수자료형
*
* byte(1), short(2), int(4), long(8)
* 모두 정수를 저장하는 자료형, 각 자료형마다 저장할 수 있는 수의 범위가 다름.
*
* 정수 리터럴의 기본값은 int
* byte, short은 범위내에 있을 경우 자동 형변환된다.
* */
int in = 10; //int
byte by = 10;
short sh = 10;
long lo = 10;
System.out.println("정수 자료형");
System.out.printf("%d %d %d %d", by, sh, in, lo);
/*
* 실수 자료형
* float(4), double(8)
* 실수를 저장하는 자료형 float 보다 double이 더 정밀하게 표현할 수 있음
* */
float fl = 4.123f;
double dou = 4.123;
System.out.println("실수 자료형");
System.out.println(fl + ", " + dou);
/*
* 문자 자료형
* char(2)
* 문자 하나를 담을 수 있는 자료형 '' ("" = 문자열)
* 자바는 2바이트 유니크드를 사용.
* */
char ch1 = '홍'; //16비트(2바이트)의 유니코드 정수로 저장됨
char ch2 = '길';
char ch3 = '동';
System.out.println("" + ch1 + ch2 + ch3); //""는 문자열.
//기본적으로 char은 int로 연산시 int로 형변환이 일어난다.
System.out.println(ch1);
/*
* 논리 자료형
* boolean(1)
* true와 false를 저장하는 자료형
* */
boolean b1 = 10 > 5; //true
boolean b2 = 20 == 10; //false
System.out.println("논리 자료형");
System.out.println(b1);
System.out.println(b2);
/*
* 문자열
* String
* 문자열 같은 경우 할당항 메모리 크기가 가변적이므로 원시타입이 아닌 객체타입으로 변수를 생성하고 사용한다.
*
* 원래 객체를 만드는 방식은
* Sting 변수명 = new 클래스명(초기값);
*
* 문자열은 특별한 객체로 원시탑과 동일하게 생성하고 사용할 수 있다.
* */
String str1 = "안녕하세요.";
System.out.println(str1);
String str2;
str2 = null;
//String의 변수는 참조변수이기 때문에 기본값은 null이고 빈값을 표현하기 위해 null을 대입할 수 있다.
String str3;
str3 = "김무";
str3 = null;
System.out.println(str3);
/*
* 이스케이프 시퀀스
* 문자열 내에서 탭, 백슬러시, 작은따옴표등을 사용하기 위한 방식
* */
// \t : 탭(tab)
//가로로 일정 간격을 띄움
System.out.println("이름 나이 주소"); //띄어쓰기 5번
System.out.println("이름\t나이\t주소");
// \\ : 백슬래시(\)
// 문자 자체로 출력
System.out.println("경로 : C:\\devtool");
// \' : 작은따옴표 \" : 쌍따옴표
// 문자형에서 '을 그대로 쓰면 구문오류
System.out.println("오늘은 '금요일' 입니다.");
System.out.println('\'');
System.out.println("\"");
// \n : 개행문자
/*
* 상수
* 수학 -> 변하지 않는 값
* 프로그래밍 -> 한번만 사용할 수 있는 메모리
*
* [표현식]
* final 자료형 변수이름;
*
* 상수의 변수명은 모두 대문자로 짓는 것이 규칙이다.
* 대문자로 작성하되 스네이크케이스를 사용
* */
final int MY_AGE;
MY_AGE = 100;
// MY_AGE = 111; 값을 한번 초기화하면 더이상 변경할 수 없다.
System.out.println(MY_AGE);
}
}
프로그래밍에서 이름 짓는 방식
카멜케이스 방식 : 단어를 나열하며 이름을 짓되, 두번째 단어부터는 단의 첫글자를 대문자로 시작
(자바에서 모든 메서드, 변수명)
ex) userName, totalPrice
파스칼케이스 : 카멜케이스에서 첫글자도 대문자로 작성(자바에서는 클래스명 사용)
ex) UserName, TotalPrice
스네이크 케이스 : 문자와 문자 사이를 언더스코어(_)를 통해서 이어주는 것(파이썬)
ex) user_name, total_price
대문자스네이크케이스 : 스네이크 케이스 + 모두 대문자(대부분 언어에서 상수명)
ex) USER_NAME
케밥 케이스 : 단어를 소문자로 작성하되, 문자와 문자 사이를 하이픈(-)으로 이어주는 것
(html속성, url, 설정파일)
ex) user-name
형변환
형변환
자료형을 다른 자료형으로 변경해주는것
자동형변환
두 개 이상의 자료형을 연산할 때 하나의 자료형으로 일치시켜야 연산이 가능
데이터손실이 적은 방향으로 컴파일러가 직접 형변환을 해주는 것
명시적 형변환(강제형변환)
값의 범위가 큰 자료형을 값의 범위가 작은 자료형으로 변환할 때
자동으로 컴파일러가 수행하지 않는 것을 개발자가 직접 진행함(데이터 손실 가능)
public class Conversion {
public static void main(String[] args) {
double pi = 3.141592;
int num1 = (int)pi; //double을 int로 형변환
System.out.println(num1);
char a = 'a';
System.out.println("a + 1 : " + (char)((int)(a + 1)));
//문자인 a에 1을 더할 때,
// 자동형변환으로 2byte인 문자 자료형에서 4byte 정수 자료형으로 변환
//다시 char로 강제형변환하여 b라는 값을 출력.
long num2 = 3000000000006L;
int num3 = (int)num2; // int로 형변환시 int범위를 초과하여서 비트자리가 짤린채로 출력.
System.out.println(num3);
}
}
Scanner
입력 : 외부에서의 데이터를 코드내부로 가져오는 것
Scanner를 사용하면 키보드에 입력 값을 가져올 수 있음
(java.util.Scanner 클래스를 이용함)
[표현식]
Scanner 이름 = new Scanner(System.in);
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
//Scanner 객체 생성
Scanner sc1 = new Scanner(System.in);
//next();
//문자열을 입력받는 함수(공백 전까지)
//입력받은 값을 특정 변수에 바로 대입.
/*
String str1, str2;
System.out.println("입력 : ");
str1 = sc1.next();
str2 = sc1.next();
System.out.println("str1에 입력한 값 : " + sc1.next());
System.out.println("str2에 입력한 값 : " + str2);
*/
//.nextLine()
//문자열 입력받는 함수(공백을 포함한 한줄, 개행문자까지)
System.out.print("이름 : ");
String name = sc1.nextLine();
System.out.print("주소 : ");
String address = sc1.nextLine();
System.out.print("나이 : ");
int age = sc1.nextInt(); //정수를 입력받고자 할 때
sc1.nextLine(); //nextInt()를 입력할 때 발생한 \n값도 비워주는 코드
System.out.printf("제 이름은 %s이며 %s에 살고 있습니다. 저는 올해 %d살 입니다.", name, address, age);
//문자이외에 원시타입을 입력받을 때
//.next타입()
//nextInt, nextDouble() ...
sc1.close(); //Scanner 자원을 다 사용한 후 반납 단. 하번 반납하면 다시 사용X
sc1 = new Scanner(System.in); //다시 Scanner 생성시 에러 발생
}
}
'JAVA' 카테고리의 다른 글
| JAVA 4일차(2) (2) | 2025.08.08 |
|---|---|
| JAVA 4일차(1) (4) | 2025.08.08 |
| JAVA 3일차 (4) | 2025.08.07 |
| JAVA 2일차(2) (2) | 2025.08.06 |
| JAVA 2일차(1) (3) | 2025.08.06 |