변수와 자료형
- 지역변수의 초기값 테스트
- 형 변환 / 접미사
public class Test006
{
public static void main(String[] args)
{
// 변수 선언(지역 변수 a)
int a;
//System.out.println("a의 결과 : " + a);
//-=>> 에러 발생(컴파일 에러)
// 지역 변수를 초기화 하지 않고 사용했기 때문에 발생한 에러
//Primitive Type 의 지역 변수는
//초기화 과정을 거치지 않고 사용하지 못한다. 값이 담기지
//않은 상태에서 출력하고자 하면 에러 발생하는 것이다.
//초기화(→메모리에 값 할당)
a= 10;
//초기화 이후 다시 출력
//System.out.println("a의 결과 : " + a);
//변수 선언 및 초기화
byte b = 20;
System.out.println("b의 결과 : " + b);
short c;
//연산 및 처리 ( 대입 연산 )
//c = a;
//결과 출력
//System.out.println("c의 결과 : " + c);
//-==>> 에러 발생(컴파일 에러)
//에러 사유 → 자료형이 작은 것에 큰 것을 담지 못한다. (int → short)
//(자동 형변환 규칙 위배)
c = (short)a;
System.out.println("c의 결과 : " + c);
/*[출력결과]
b의 결과 : 20
c의 결과 : 10
계속하려면 아무 키나 누르십시오 . . .*/
//변수 선언 및 초기화
long d = 10000000000L; //--백억
// 접미사 『L』이 중요하다.
// long 형은 숫자(상수) 뒤에 L 또는 ㅣ을 붙여
// 상수를 표현해야 한다,
// 즉, 약 21억 이상 되는 상수에는 뒤에 접미사를 꼭 붙여줄 수 있도록 한다.
System.out.println("d의 결과 : " + d);
int e = 030;
System.out.println("e의 결과 : " + e);
//[출력결과] e의 결과 : 24
//큰/작은따옴표가 없는 상태에서 숫자형태 데이터만 나열했을때
//정수로 받아들여진다.
//단, 접두사 0 → 8 진수의 형태로 표현된다.
int f = 0xa6;
System.out.println("f의 결과 : " + f);
//접두사 0x → 16진수
//-=>f의 결과 : 166
float g = 0;
System.out.println("g의 결과 : " + g);
//-=> g의 결과 : 0.0
//float h = 0.0; //→ 이 경우에는 에러가 남(double에서 float자동형변환 안됨)
// possible lossy conversion from double to float
float h = 0.0f;
System.out.println("h의 결과 : " + h);
/*[출력결과]
b의 결과 : 20
c의 결과 : 10
d의 결과 : 10000000000
e의 결과 : 24
f의 결과 : 166
g의 결과 : 0.0
h의 결과 : 0.0
*/
/* f를 붙이는 이유?
지금 저장하는 실수형 데이터가 float타입이라는 것을 컴퓨터에게 알리기 위한 용도
만약 f가 없다면 자바는 이 data를 double로 인식하게 되고,
4바이트가 초과되는 영역은 잘리게 된다는 오류발생. (float는 4바이트, double은 8바이트이므로)*/
}
}
- 변수와 자료형 실습 및 테스트 : boolean
public class Test007
{
public static void main(String[] args)
{
// 주요 변수 선언
boolean a = true;
boolean b ;
int c=10, d=5;
//연산 및 처리 ( 관계 연산 및 대입 연산 )
b = c < d;
// b=10<d;
//b=10<5;
//b=false;
//결과 출력
System.out.println("a : " + a );
System.out.println("b : " + b);
//[결과출력]
//a : true
//b : false
//계속하려면 아무 키나 누르십시오 . . .
}
}
- 변수와 자료형 실습 및 테스트 : Char
public class Test008
{
public static void main(String[] args)
{
// 주요 변수 선언
char ch1, ch2, ch3;
int a;
// 연산 및 처리
ch1 = 'A';
ch2 = '\n';
//역슬래시 n 합쳐진 자체가 하나의 문자라고 인식하면 됨 , 마치 ㄷ ㅔ 데 처럼
ch3 = '대';
a = 'A';
//이 경우 문제없이 자동형변환이 되지만 (int)'A' 가급적이면 이렇게 명시적으로 쓰도록 권장하는 편
// 결과 출력
System.out.println("ch1 : " +ch1);
System.out.println("ch2 : " +ch2);
System.out.println("ch3 : " + ch3);
System.out.println( "a : " + a);
}
/*[출력결과]
ch1 : A
ch2 :
ch3 : 대
a : 65
계속하려면 아무 키나 누르십시오 . . .
*/
}
- 변수와 자료형 실습 및 테스트 : double
public class Test009
{
public static void main(String[] args)
{
// 정수와 정수의 나눗셈
double a = 1/2;
//double a = 0.0;
System.out.println("double a : " + a);
double b = 1/2 + 1/2;
System.out.println("double b : " + b);
//☆대입연산자 왼쪽은 신경쓰지 않고 우선 오른편부터 본다.
double c = 1/2.0;
System.out.println("double c : " + c);
// ★★나눗셈에 실수가 포함될 때는 실수기반으로 나온다.★★
// int / double 의 경우 연산을 위해 형변환이 필요하기에 int → double 이 된다.
// 나눗셈 연산과 관련하여 피연산자 중 실수가 포함되어 있다면
// 실수 기반의 연산이 이뤄지며 결과값은 실수 형태로
// 연산되어 반환된다.
double d = 3/2 + 1/2;
//double d = 1 + 1/2;
//double d = 1 + 0;
System.out.println("double d : " + d);
//답은 1.0
double e = 3/2 + 1/2.0;
System.out.println("double e : " + e);
//답은 1.5
/*
double a : 0.0
double b : 0.0
double c : 0.5
double d : 1.0
double e : 1.5
계속하려면 아무 키나 누르십시오 . . .*/
}
}
- 사전에 부여된 반지름 정보를 통해
원의 넓이와 둘레를 구하는 프로그램을 작성
// 실행 예 )
// 넓이 : ----
// 둘레 : ----
// 계속하려면 아무 키나 누르세요...
// 원의 둘레 = 반지름 * 2 * 3.14
// 원의 넓이 = 반지름 * 반지름 * 3.14
public class Test010
{
public static void main(String[] args)
{
int r =10;
System.out.println("넓이 : " + r * r * 3.14);
System.out.println("둘레 : " + (r * 2 * 3.14));
/*[실행결과]
넓이 : 314.0
둘레 : 62.800000000000004
계속하려면 아무 키나 누르십시오 . . .
*/
//주요 변수 선언
double pi= 3.141592; //원주율
//final double PI = 3.141592;
// 키워드 <final> : 변수의 상수화(원래는 변수지만 키워드 붙여서 상수처럼 쓰게 만든 것 뿐 상수자체는 아니다)
double area, length;
//연산 및 처리
area = r*r*pi;
length = r*2*pi;
//결과출력
System.out.println("넓이 : " + area);
System.out.println("둘레 : " + length);
/*
넓이 : 314.1592
둘레 : 62.83184*/
System.out.print("넓이 : " + area +"\n둘레 : " + length);
System.out.println();
System.out.printf("넓이 : %.2f\n둘레 : %.2f\n", area, length);
/*
넓이 : 314.1592
둘레 : 62.83184
넓이 : 314.16
둘레 : 62.83
*/
// <%f> 10진수 실수형을 담아내는 옵션문자
// 『%.2f』 는 소숫점 이하 둘째자리까지 표현하겠다는 의미의 추가 옵션
}
}
'📚Study Note > JAVA' 카테고리의 다른 글
float와 double의 정밀도, 비트단위연산자와 논리연산자 (0) | 2021.03.04 |
---|---|
java.util.Scanner (0) | 2021.03.02 |
printf() _ 서식출력메소드 (0) | 2021.03.02 |
BufferedReader, System.in.read() (0) | 2021.03.01 |
자바의 개요 및 특징 / 변수와 자료형 / 키워드와 식별자 (0) | 2021.02.25 |