package variable;
public class VariableExam {
public static void main(String[] args) {
/* 출력형태 )
* =========== 홍길동의 중간고사 성적 =========
* 이름 국어 영어 수학 합계 평균
* =======================================
* 홍길돌 73 95 81 xxx xx.xx
* =======================================
변수 선언
1) 타입 변수명 = 초기값;
2) 타입 변수명;
변수명 = 초기값;
문자열 String 변수명 = ""; 초기값
정수 int 변수명 = 값;
실수 double 변수명 값;
*/
String name = "홍길동";
int kor = 74;
int eng = 95;
int mat = 81;
int sum = 0;
double avg = 0.0;
sum = kor + eng + mat ; // 세과목 합계
avg = sum / 3; // 세과목 평균
/* prinf 의 포맷 서식
* %s - 문자열
* %5s, %자릿수s
* %d - 정수 %자릿수d
* %f - 실수
* %.소수이하자릿수f
* %c - 문자
*
* */
System.out.println("============ "+ name + "의 중간고사 성적 ==============");
System.out.println("이름\t국어\t영어\t수학\t합계\t평균");
System.out.println("=============================================");
System.out.printf("%s\t %d\t %d\t %d\t %d\t %.2f\n" , name, kor, eng, mat, sum, avg);
}//end of main
}//end of VariableExam
/* 연산자
* 1. 산술 연산자
* +
* -
* * 곱셈
* / 나눗셈, 몫
* % 나눗셈, 나머지
*
* 자바는 정수/ 정수 는 결과가 정수
* 3 / 2 = 1, 소수이하는 버림
* 실수 / 정수는 결과가 실수
* 3.0 / 2 = 1.5
* 정수 / 실수는 결과가 실수
* 3 / 2.0 = 1.5
*/
위에 avg = sum / 3; 를 avg = sum / 3.0; 으로 바꾸면 평균이 83.33 으로 나오는걸 알 수 있음
2. 단항 연산자(+,-)
*
* 3. 증감 연산자
* ++ ++a, a++ => a=a+1
* -- --a, a-- => a=a-1
* ++, -- 앞에 붙으면 나먼저 증/감하고 계산식에 참여
* ++, -- 뒤에 붙으면 계산식에 참여한 후 증/감
*
* 4. 문자열 결합(연결) 연산자
* 문자열 + 변수 => 문자열
* 문자열 + 숫자 => 문자열
* 숫자 + 문자열 => 문자열
* 변수 + 문자열 => 문자열
*
* String name = "홍길동";
* int num = 8;
*
* num + "3" => 83
* 45 + name => 45홍길동
*
* 5. 비교연산자 ( 결과각 ture/false)
* >
* >=
* <
* <=
* == : 같다
* != : 같지 않다.
*
* 6. 논리연산자
* && : and, 그리고
* || : or, 또는
* & : and, 그리고
* | : or, 또는
* ^ : 베타적
* ! : 논리 부정(not)
*
* 7. 대입 연산자
* =
* += a+=3; => a = a + 3
* -=
* *=
* /=
* %=
*
* 8. 삼항 연산자
* 조건식 ? 조건식의 결과가 참일때 실행할 문장 : 조건식의 결과가 거짓일때 실행할 문장;
*
*
*
*/
/* 자바에서 자료형
* 1. 기본자료형 ( = 타입, 형 ) : 메모리의 스택에 저장
* 정수 : byte : -128 ~ 127 , 1 byte 크기
* short : 2byte, -32768 ~ 32767
* char : 문자, 2byte, 음수 표현이 안됨, 0~65535
* 'A' 유니코드 65
* int : 4byte, 약 -21억 ~ + 21억 사이
* 기본적으로 정수는 int
* long : 8byte, 숫자 l dlsk L
* int a = 4;
* long b=4L;
* 실수 : float : 4byte
* double : 8byte
* 자바의 기본 실수값은 double
* double d = 5.6;
* float f = 5.6f, 실수 뒤에 f,F 를 붙여서 표현
*
* byte < short < int < long < float < double
*
*
*
* 논리형 : boolean -> true, false
*
* 자동 타입변환(p. 95)
* byte byte => 결과가 무조건 int
* short 연산자(+, -, *, /, %) short
* int int
*
*
* - 정수 타입 연산자(+, -, *, /, %) 정수자료형 => 무조건 결과는 int
* - 정수 타입 연산자(+, -, *, /, %) int => 무조건 결과는 int
*
* - 정수 타입 연산자(+, -, *, /, %) long => 무조건 결과는 long
*
* - jvm은 기본적으로 4byte 단위로 연산을 처리
*
* 작은 자료형이 큰 자료형과 연산을 하면 큰 자료형으로 형변환(=타입변환, 자료형변환)
*
* 3) 강제 타입변환(casting 연산)
* - 타입 변환(=형변환) 연산자를 사용해 데이터 타입을 강제로 변환하는 연산
* - 타입 변환(=형변환) 연산자 : (타입)
* double avg = (double)sum /2 ;
* double avg = sum /(double)2 ;
*
* int num = 50;
* double doub = 40.7;
* num = doub + num; // 컴파일 에러, 더블형 + 정수 => 더블형
* // 정수형 = 더블형 이기에 컴파일 에러
* num = (int)doub + num ;
* num = (int)(doub + num);
* - 강제적으로 큰 데이터 타입을 작은 데이터 타입으로 쪼개서 저장하는 것은
* 데이터 손실이 발생할 수 있음
* 작은 크기 타입 = (작은크기타입)큰크기타입
*
* - 주의사항
* 사용자로부터 입력받은 값을 변환할 때 값의 손실이 발행하면 안됨
* 강제 타입 변환을 하기 전에 우선 안전하게 값이 보존될 수 있는지 검사할 필요가 있음
* 정수 타입을 실수 타입으로 변환할 때도 정밀도 손실을 피해야 함
*
*
* 2. 참조 자료형 ( = 타입, 형 ) : 메모리의 힙 영역 저장
*
*
* 개념 정리
* - 문자 : ''
* '가', '1'
* - 문자열 : ""
* "abc", "A", "가" , "1"
* - 변수(variable) : 하나의 값을 저장하기 위한 공간(가장 마지막에 들어온 값 하나만 저장)
* - 상수(constant) : 처음 값을 한 번 저장하면 바꿀 수 없음
* 한번만 지정할 수 있는 그릇, 코드 중간에 값을 변수처럼 변경할 수 없음
* 선언하는 곳에서만 변경 가능
* 자바에서는 상수에는 final을 붙이고 상수명을 대문자 표현
* final 상수타입 상수명 = 값;
* final double PI = 3.141592;
*
* final int HEIGHT;
* HEIGHT = 20;
*
* - 리터럴(literal) : 그 자체롤 값을 의미하는 것
* 10, 홍길동, ....
*
*
*
*/
}
}
'코딩 > Java' 카테고리의 다른 글
자바 객체 지향 프로그래밍 (0) | 2024.10.11 |
---|---|
JAVA 이클립스 05 Scanner (2) | 2024.10.01 |
JAVA 이클립스 03 변수 (0) | 2024.09.30 |
JAVA project , class 만들기 (0) | 2024.09.30 |
JAVA 이클립스 02 기본구조 (1) | 2024.09.30 |