728x90
두 변수 값 바꾸기
//두 변수 값 교환
int x = 10;
int y = 20;
x = y;
y = x;
System.out.println(x);
System.out.println(y);
int a = 10;
int b = 20;
int temp;
temp = a;
a = b;
b = temp;
System.out.println("a = " + a);
System.out.println("b = " + b);
값의 타입
//값의 타입
//값(data) : 문자(char), 숫자(정수(byte, short, int, long), 실수(float, double)), 논리(boolean) <- 기본형
//변수의 타입 : 기본형(Primitive type), 참조형(Reference type)
//기본형 : boolean, char, byte, short, int, long, float, double
// 실제 값을 저장
//참조형 : 기본형을 제외한 나머지(String, System 등)
// 메모리 주소를 저장(4 byte 또는 8 byte)
Date today; //참조형 변수 today를 선억
today = new Date(); //today에 객체의 주소를 저장
//참조형 변수는 객체의 주소를 저장한 것
기본형 종류와 범위
//기본형의 종류와 크기
//논리형(boolean) : true와 false 중 하나의 값을 갖고 있으며, 조건식과 논리적 계산에 사용
//문자형(char) : 문자를 저장하는데 사용되며, 변수 당 하나의 문자만을 저장할 수 있음. 여러문자열은 String을 사용
//정수형 : 정수 값을 저장하는 데 사용
//byte : 이진 데이터를 다루는데 사용
//short : c언어와 호환을 위해 추가됨(단 잘 사용안됨)
//int : 정수 값을 사용할 때 주로 사용됨
//long : 아주 큰 정 수 값을 저장할 때 사용
//실수형 : 실수 값을 저장하는 데 사용
//float
//double
/*
* 1 2 4 8 (단위 byte)
* 논리형 boolean
* 문자형 char
* 정수형 byte short int long
* 실수형 float double
* ※ 1bit = 2진수 1자리, 1byte = 8bit
*/
//부호 있는 정수의 범위 : -2^(n-1) ~ 2^(n-1) -1 ※정수 타입
//부호 없는 정수의 범위 : 0 ~ 2^n-1 ※char의 경우 0 ~ 2^16-1 => 0~65535
//실수형 정밀도(오차없는 자리수)
//float 7자리
//double 15자리
printf()
//println()의 단점
//1) 출력 형식을 지정할 수 없음 : 실수의 자리수를 조절할 수 없음 - 소수점 n자리만 출력하려면
System.out.println(10.0/3);
//2) 출력이 10진수로만 출력됨
System.out.println(0x1A);
//println의 단점을 보완 => printf() : 출력형식을 지정할 수 있음
System.out.printf("%.2f", 10.0/3);
//"%.2f" -> 소수점 둘째자리
System.out.printf("%d", 0x1A);
//"%d" -> 10진수
System.out.printf("%X\n", 0x1A);
//"%X" -> 16진수
//printf() 지시자
//%b : Boolean 형식으로 출력
//%d : 10진(decimal) 정수의 형식으로 출력
//%o : 8진(octal) 정수의 형식으로 출력
//%x, %X : 16진(hexa-decimal) 정수의 형식으로 출력
//%f : 부동 소수점(floating-point)의 형식으로 출력
//%e, %E : 지수(exponent) 표현식의 형식으로 출력
//%c : 문자(character)로 출력
//%s : 문자열(string)로 출력
System.out.printf("age:%d year:%d\n", 24, 2024);
System.out.println();
//정수를 10진수, 8진수, 16진수로 출력
// %n == \n 개행문자
System.out.printf("%d%n", 15); //10진수
System.out.printf("%o%n", 15); //8진수
System.out.printf("%x%n", 15); //16진수
System.out.printf("%X%n", 15); //16진수
System.out.printf("%s%n", Integer.toBinaryString(15)); //2진수 ※2진수로출력하는 지시자는 없음
System.out.println();
//8진수와 16진수에 접두사 붙이기 #
System.out.printf("%#o%n", 15);
System.out.printf("%#x%n", 15);
System.out.printf("%#X%n", 15);
System.out.println();
//실수 출력을 위한 지시자 %f, 지수형식 %e, 간략한 향식 %g
float f = 123.4567890F;
System.out.printf("%f%n", f); //소수점아래 6자리(정밀도에 의해서=>따라서 double을 자주 사용)
System.out.printf("%e%n", f); //지수형식
System.out.printf("%g%n", 123.456789); //간략한 형식
System.out.printf("%g%n", 0.000000001); //간략한 형식
System.out.println();
System.out.printf("[%5d]%n",10);
System.out.printf("[%-5d]%n",10); //왼쪽 정렬
System.out.printf("[%05d]%n",10);
System.out.println();
//%전체자리.소수점 아래자리f
double d = 123.12345;
System.out.printf("%14.10f%n", d);
System.out.println();
System.out.printf("[%s]%n", "github.com/mystory001");
System.out.printf("[%30s]%n", "github.com/mystory001");
System.out.printf("[%-30s]%n", "github.com/mystory001");
System.out.printf("[%.10s]%n", "github.com/mystory001");
// System.out.printf("[%-.10s]%n", "github.com/mystory001"); 이건 오류남
Scanner
//Scanner
//화면으로부터 데이터를 입력받는 기능을 제공하는 클래스
Scanner scanner = new Scanner(System.in);
//System.in => 화면입력
String input = scanner.nextLine();
int num = Integer.parseInt(input); //문자열을 숫자로 변환
//숫자 -> 문자열 : 숫자 + ""
//문자열 -> 숫자 : Integer.parseInt();
Scanner scanner = new Scanner(System.in);
// int num1 = scanner.nextInt();
// int num2 = scanner.nextInt();
// System.out.println(num1);
// System.out.println(num2);
String input = scanner.nextLine();
int num = Integer.parseInt(input);
System.out.println(num);
오버플로우
//최솟값 - 1 => 최대값
//최댓값 + 1 => 최솟값
//10진수
//0 ~ 9 ↔ 0 ~ 10^1-1
//0 ~ 99 ↔ 0 ~ 10^2-1
//0 ~ 999 ↔ 0 ~ 10^3-1
//...
//2진수
//0 ~ 1 ↔ 0 ~ 2^1-1
//0 ~ 11 ↔ 0 ~ 2^2-1
//0 ~ 111 ↔ 0 ~ 2^3-1
//...
//n bit 표현할 수 있는 정수의 개수는 0 ~ 2^n - 1 (부호없는경우)
타입 간 변환
//타입간의 변환
//1) 문자와 숫자간의 변환(문자 '0'을 더하거나 빼줌)
//3(숫자) +'0'(문자) -> '3'(문자)
//cf) 문자 -> 숫자
//'3'-'0' -> 3
//2) 문자열로의 변환
//3(숫자) -> "3"(문자열)
//3 + ""(빈문자열) -> "3"
//'3'(문자) -> "3"
//'3' + ""(빈문자열) -> "3"
//3) 문자열을 숫자로 변환
//"3"(문자열) -> 3(숫자)
//Integer.parseInt("3") -> 3
//"3.14" -> 3.14
//Double.parseDouble("3.14") -> 3.14
//"3" -> '3'
//"3".charAt(0) -> '3'
String str = "3";
System.out.println(str.charAt(0) - '0'); //숫자
// == System.out.println(3.charAt(0) - '0');
System.out.println('3' - '0' + 1);
System.out.println(Integer.parseInt("3")+1);
System.out.println("3" + 1);
System.out.println(3 + '0');
728x90
'organize > 자바' 카테고리의 다른 글
자바 처음부터 다시 시작하기 4 (0) | 2024.04.14 |
---|---|
자바 처음부터 다시 시작하기 3 (0) | 2024.04.14 |
자바 처음부터 다시 시작하기 1 (0) | 2024.04.10 |
Java Chapter 2 타입과 연산자 (0) | 2023.12.03 |
Java Chpater 1. 자바란? (0) | 2023.12.02 |