형식) 자료형 변수명;
자료형 : java의 기본 자료형 (8가지)
변수형 : 사용자가 임의로 만들 수 있음.
1. 변수 선언 ==> 자료형 변수명;
2. 변수 초기화 ==> 변수에 값을 저장 (= 기호를 사용)
3. 변수 이용 ==> 연산 및 출력
public class Variable_01 {
public static void main(String[] args) {
// 1. 변수 선언 ==> 자료형 변수명;
byte su1;
byte su2;
// 2. 변수의 초기화 ==> 변수에 값을 저장.
su1 = 73;
su2 = 57;
su1 = 100;
System.out.println("su1 >>> "+su1);
System.out.println("su12 >>> "+su2);
System.out.println("su1 + su2 >>> "+(su1+su2));
}
}
public class Variable_02 {
public static void main(String[] args) {
// 1. 변수 선언
// int num;
// 2. 변수 초기화
// num = 130;
// 1 + 2 : 변수 선언 및 변수 초기화
int num = 135;
num = num + 100;
int num2 = num;
// 3. 변수 연산 또는 변수 출력
System.out.println("num >>> "+ num);
System.out.println("num2 >>> "+ num2);
}
}
public class Variable_03 {
public static void main(String[] args) {
int su1 = 67, su2 = 19; // 같은 변수일 때는 , 로 구분해서 한줄로 작성 가능
System.out.println("su1변수의 값은 "+ su1 + " 입니다.");
// ctrl + alt + 화살표 : 같은 내용 그 방향으로 복사
System.out.println("su2변수의 값은 "+ su2 + " 입니다.");
System.out.println("두 수의 합은 " + (su1+su2) +" 입니다.");
}
=> 해당 데이터 값의 자료형을 다른 데이터 타입의 자료형으로 변환하는 것을 말함.
1. 묵시적 형변환
==> 자료형의 크기가 작은 데이터를 큰 자료형의 변수에 저장하는 경우
이 때는 형변환 직업을 안 해 주어도 됨.
2. 명시적 형변환
==> 자료형의 크기가 큰 데이터를 작은 자료형의 변수에
저장하는 경우. 이 때는 반드시 형변환 작업을 해 주어야 함.
※ 형변환 작업 시에는 자료의 손실이 발생할 수 있음.
public class Variable_04 {
public static void main(String[] args) {
// 변수 선언 및 변수 초기화
byte su = 127;
System.out.println("su >>> "+su);
// 자료형의 형변환 작업 (묵시적 형변환) -- 기제 필요 없음
int num1 = su; // int = 4byte
System.out.println("num1 >>> "+ num1);
int num2 = 130;
System.out.println("num2 >>> "+ num2);
// 자료형의 형변환 작업 (명시적 형변환) -- 반드시 형변환 기제 필요! 안하면 오류 발생
byte su2 = (byte)num2;
// 큰 값을 작은 곳에 넣긴 어려움 -> 따라서 형변환 필요 ==> (byte)
System.out.println("su2 >>> "+ su2);
}
}
float 자료형의 변수에 실수 값을 저장 시 오류 발생
이유 : 실수 자료형의 기본형은 double형이기 때문임.
public class Variable_05 {
public static void main(String[] args) {
double dNum = 123.45666; // double = 8byte
System.out.println("dNum >>> "+dNum);
float fNum = 1245.78954f; // float = 4byte (float) 대신 맨 뒤에 f 써도 됨
System.out.println("fNum >>> " + fNum);
}
}
public class Variable_06 {
public static void main(String[] args) {
char ch1 = 'B';
System.out.println("ch1 >>> " + ch1);
System.out.println((char)(ch1 + 1));
// B + 1 = C / (ch1 + 1) 숫자 = 67 --> 66 + 1 ==> 67(C)
}
}
논리 자료형(boolean형)
* - 참이나 거짓을 판별(처리)하는 자료형
* - true : 참인 값
* - false : 거짓인 값
* - boolean형의 기본 값은 false임
* - True / False(X) ==> 반드시 소문자로 작성해야 함
public class Variable_08 {
public static void main(String[] args) {
// 변수 선언 및 변수 초기화
int su1 = 47, su2 = 83;
System.out.println("변경하기 전....");
System.out.println("su1 >>> " + su1);
System.out.println("su2 >>> " + su2);
// 두 변수의 값을 서로 바꾸는 방법
//방법 1
int temp = su1; // 임의 변수 선언
su1 = su2; // su1 변수에 su2 값 삽입
su2 = temp;
/* 방법 2
* int temp = su2;
* su2 = su1;
* su1 = temp;
*/
System.out.println("변경 후....");
System.out.println("su1 >>> " + su1);
System.out.println("su2 >>> " + su2);
}
}
[문제1] 국어, 영어, 수학, 자바 변수를 만들고 해당 변수에 점수를 입력 후 총점과 평균을 구하여 화면에 출력해보세요.
조건1) 평균은 소숫점 이하 2자리까지만 출력할 것.

import java.util.Scanner;
public class Exam_01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("국어 점수 입력 : ");
int k = sc.nextInt();
System.out.print("영어 점수 입력 : ");
int e = sc.nextInt();
System.out.print("수학 점수 입력 : ");
int m = sc.nextInt();
System.out.print("자바 점수 입력 : ");
int j = sc.nextInt();
System.out.println();
int sum = k+e+m+j;
double avg = k+e+m+j/4.0;
System.out.println("국어 점수 : " + k + "점");
System.out.println("영어 점수 : " + e + "점");
System.out.println("수학 점수 : " + m + "점");
System.out.println("자바 점수 : " + j + "점");
System.out.print("총 점 : " + sum);
System.out.println("점");
System.out.printf("평 균 : %.2f", avg);
System.out.println("점");
sc.close();
}
}
[문제2] 임의의 정수 하나를 입력 받아서 그 수의 제곱, 세제곱을 구하여 화면에 출력해 보세요

import java.util.Scanner;
public class Exam_02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
System.out.println();
System.out.println("입력 받은 정수 ==> "+num);
System.out.printf( num+"의 제곱 ==> %d\n",(num*num));
System.out.printf( num+"의 세제곱 ==> %d ",(num*num*num));
sc.close();
}
}
[문제3] 키보드로 금액과 상품단가, 수량을 입력하면 부가세, 상품총액, 거스름돈을 화면에 보여주는 프로그램을 완성해 보세요.
※ 부가세 : (상품단가 수량) 의 10%
※상품총액 : (상품단가 수량) + 부가세

import java.util.Scanner;
public class Exam_03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("입금액 입력 : ");
int x = sc.nextInt();
System.out.print("상품 단가 입력 : ");
int y = sc.nextInt();
System.out.print("상품 수량 입력 : ");
int z = sc.nextInt();
System.out.println();
int i = (int) ((y * z) *0.1);
int l = (int)((y * z) + i);
int w = (int)(x - l);
System.out.println("지불한 금액 : " + x + "원");
System.out.println("제품 단가 : " + y + "원");
System.out.println("수량 : " + z);
System.out.println("부가세 : " + i + "원");
System.out.println("상품 총액 : " + l + "원");
System.out.printf("거스름 돈 : " + w + "원");
sc.close();
}
}
[문제3] 키보드로 임의의 숫자 4자리를 입력을 받는다.
오천원짜리 몇장, 천원짜리 몇장, 오백원짜리 몇개,백원짜리 몇개, 오십원짜리 몇개, 십원짜리 몇개, 일원짜리가 몇개로 구성되어 있는지 화면에 출력해 보세요.
- 예) 3781 = 천원짜리 3장, 오백원짜리 1개, 백원짜리 2개,
오십원짜리 1개, 십원짜리 3개, 일원짜리 1개

import java.util.Scanner;
public class Exam_04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("4자리 숫자 입력 : ");
int su = sc.nextInt();
System.out.println();
/*
* 변수를 나누기연산으로 장수를 구하고,
* 나머지연산을 이용하여 남은 수를 구해준다
*/
int x = su/5000; su %= 5000;
int y = su/1000; su %= 1000;
int z = su/500; su %= 500;
int i = su/100; su %= 100;
int u = su/50; su %= 50;
int o = su/10; su %= 10;
int w = su/5; su %= 5;
int p = su/1; su %= 1;
/*
* 축약된 방법
* int x = su /5000;
* int y = su % 5000 / 1000;
* int z = su % 1000 / 500;
* int i = su % 500 / 100;
* int u = su % 100 / 50;
* int o = su % 50 / 10;
* int w = su % 10 / 5;
* int p = su %10;
*/
System.out.println("오천원 지폐 : " + x + "장");
System.out.println("천원 지폐 : " + y + "장");
System.out.println("오백원 동전 : " + z + "개");
System.out.println("백원 동전 : " + i + "개");
System.out.println("오십원 동전 : " + u + "개");
System.out.println("십원 동전 : " + o + "개");
System.out.println("오원 동전 : " + w + "개");
System.out.println("일원 동전 : " + p + "개");
sc.close();
}
}