public class Exam_07 {
public static void main(String [] args) {
// 단항연산자 - 논리부정연산자
boolean c = true;
System.out.println(!(!c)); // true
// 논리연산자
int a = 10;
int b = 13;
System.out.println(a==b & ++a>b); //1 10==13 && 11>13 a==b가 거짓이므로 뒤는 실행하지 않는다.
System.out.println(a==b & ++a>b); //2 11==13 && 12>13
System.out.println(a==b & ++a>b); //3 12==13 && 13>13
System.out.println(a==b & ++a>b); //4 13==13 && 14>13
// 배정대입연산자
byte d = 10;
//d = (byte)(a+5);
d += 5; // d = d + 5
// 나열연산자
int e, f, g;
//삼항연산자
int h = 10;
System.out.println(h==10 ? "a는 10입니다." : "a는 10이 아닙니다.");
String i = "안녕";
System.out.println(i=="안녕" ? "야호" : "메롱");
}
}
public class Exam_06 {
public static void main(String[] args) {
String name = "홍길동";
System.out.println("안녕하세요 " + name + "님, 반갑습니다.");
int a = 10;
int b = 3;
System.out.println("두수의 합: " + a + b);
System.out.println("두수의 합: " + (a + b)); // 우선순위 적용
System.out.println(a/b); // int / int => int 자동형변환
System.out.println(a/(float)b); // int / float => float 둘중 하나만 강제형변환
System.out.println((float)(a/b)); // float(int / int) => float 이미 나온 값을 강제형변환
}
}
import java.util.Scanner;
public class Exam_04 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 클래스 Scanner의 의미 - 키보드(System.in)에 입력된 자료를 in으로 처리하겠다.
// Scanner kk = new Scanner(System.in);
// 키보드에 입력된 자료를 kk로 처리하겠다.
System.out.print("이름을 입력: ");
String name = in.next(); // 문자열을 처리. 공백, 탭, 줄개행 전까지
System.out.print("국어점수를 입력: ");
int kor = in.nextInt();
System.out.print("평균을 입력: ");
double avg = in.nextDouble();
System.out.println("입력하신 이름: " + name);
System.out.println("국어점수: " + kor + "점");
System.out.println("평균: " + avg);
}
}
\eclipse 우측 상단 웹 버전 / 자바 전용 버전
JAVA의 주석 - 주석을 잘 달아야 협업하기 좋은 프로그래머
1. // 한줄 주석
2. / ~ / 여러줄 주석
3. /* ~ / JAVA주석, doc 주석
사용자 정의 명칭: 사용자가 임의로 지은 클래스명, 변수명, 메소드명
※
(처리)속도 - 1Hz /s
처리용량 - bit: 1bit는 0과 1 , 01 10, 2의 1승
저장용량 - byte: 8bit는 1byte
자료형, 변수, 상수
변수: 변하는 수. 값이 저장되는 주소의 시작
자료형: 변수의 크기. 변수의 크기를 지정하기 위한 분류
기본자료형 (명칭: 크기, 값)
1. 논리형
boolean★: 1byte, true, false
2. 정수형 (초기값은 범위 안에 위치해야 한다. 이후 시계처럼 이해, 최댓값+1 = 최솟값이 된다)
byte☆ : 1byte, -128 ~ 127
short : 2byte, -32768 ~ 32767
char☆ : 2byte, 0 ~ 65535 (문자)
A -> 65, a-> 97, 0 -> 48
int★ : 4byte, -2,147,483,648 ~ 2,147,483,647 //기본자료형
long : 8byte, -2^63 ~ 2^63
long a = 10L; long b = 10l; (기본자료형이 int이기 때문에 long임을 명시)
※ int 이하의 연산결과 자료형은 항상 int가 된다. 따라서 byte a = -1 \n a = a - 1 \n System.out.println(a) 는 자료형이 맞지 않아 에러.
※ 작은 자료형은 큰 자료형에 값이 들어가지만, 반대는 안 된다.
※ int와 long의 연산결과 자료형은 long이 된다.
3. 실수형
float☆ : 4byte
float a = 10.23F; (기본자료형이 double이기 때문에 float임을 명시)
double☆ : 8byte //기본자료형
※ 실수형 자료형은 정수형 자료형보다 크다. double > float > long > int ... 표현할 수 있는 값이 큰 순 ※ 0으로 나눗셈을 하게 된다면? 정수일 때는 오류, 실수일 때는 Infinity라는 Nan 예약어
※ 형변환: 자료형을 변환시키는 것
1. 자동형변환: 작은자료형의 값이 큰 자료형으로 이동 ex) long a = 10 -> 10L
2. 강제형변환: 큰자료형의 값을 작은 자료형으로 이동 ex) c = (byte)(a+b)
- 실수형은 정수형보다 무조건 크다
- byte -> char, char -> byte, short -> char, char -> short 간에는 무조건 강제형변환을 해야 한다. (음수가 표현 되는지 여부가 다름)
※ 문자열: 기본자료형처럼 사용되는 유일한 클래스
String☆ : 4byte
자바의 기본 입출력
System(클래스)
in : 표준입력(키보드 입력받겠다)
- Scanner(클래스)
out : 표준출력(콘솔에 출력하겠다)
- print 줄바꿈 X
- println 줄바꿈 O
- printf 서식문자를 활용해 출력양식 지정 가능.
%d(정수출력), %f(실수출력), %c(문자출력), %s(문자열출력) ex) 자릿수 맞추기 %3d, %10.2f
특수문자
\n(줄개행), \t(탭만큼 이동), \(\를 적을 때)
err : 표준에러출력(out과 똑같다)
연산자
최우선연산자(가장 우선순위가 높다)
- . : 참조연산자
- [] : 배열참조연산자
- () : 괄호연산자
단항연산자(항의 앞에 붙는다)
- !☆ : 논리부정연산자 ex) Exam_07
- ~ : 비트부정연산자 (X)
- + - : 부호연산자
- ++ -- : 증감연산자 ex) a = a+1 -> ++a
- (자료형): cast연산자 ex)강제형변환
- instanceof: 다형식연산자
산술연산자
- * / %
- + -
시프트연산자 (X)
- << : 왼쪽
- >> : 오른쪽
- >>> : 부호없는 오른쪽
관계연산자 ☆
- 비교: > < >= <=
- 항등: == !=
비트연산자 (X)
- & : and 둘다 1이면 1 아니면 0
- | : or 둘중 하나만 1이면 1, 둘다 0이면 0
- ^ : xor 둘이 다르면 1, 같으면 0
논리연산자 ☆
- && : and연산자, 두 식이 모두 참이면 참, 아니면 거짓
- || : or연산자, 두 식중 하나만 참이면 참, 아니면 거짓
- & : and연산자, 두 식을 모두 실행한 후 결과를 나타 냄
- | : or연산자, 두 식을 모두 실행한 후 결과를 나타 냄
삼항연산자
- 조건식 ? 참일때 : 거짓일때;
배정대입연산자(강제형변환 하지 않아도 된다.)
- += -= *= /= %= >>= <<= >>>=
- =
증감후위연산자
- ++ -- : 단항연산자는 항 앞에 연산자가 붙는데, 증감후위연산자는 유일하게 항 뒤에 붙는다. 증감연산자에 비해 우선순위가 느리다.
나열연산자
- ,