일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- MyLife
- unrecognized selector sent to class
- struct
- class
- Git
- uikit
- 내_삶
- 제어전송문
- AnyObject
- ios 개발 강의
- 회고
- 생명주기
- error해결
- 글또9기
- copy-on-write
- 바이트디그리
- avaliable
- SWIFT
- weekly calendar
- 다짐글
- On branch is up to date with ' '
- 연관값
- Switch
- 주간 달력
- IOS
- 코드스니펫
- actionSheet
- 파스칼표기법
- 글또
- K디지털기초역량훈련
- Today
- Total
seong_hye, the developer
JAVA 기초 개념 (2) 본문
수식
: 변수, 상수, 연산자 등으로 구성된 식
- 항상 결과값을 가짐
- 수학에서의 식과 거의 같은 형태
x = 10;
y = 20;
sum = x + y; // 3문장 다 수식임
연산자
: 특정한 연산을 나타내는 기호 ( ex) +, - , *, / 등등)
<> 피연산자 : 연산의 대상
- 피연산자들에 대하여 지정된 연산을 수행하고 결과를 반환함
~ 대입 연산
: 왼쪽에 있는 변수에 오른쪽에 있는 수식의 값을 계산하여 저장함
- 대입 연산자는 할당 연산자 또는 배정 연산자라고 함
x = 10; // 상수 10을 변수 x에 대입함
~ 산술 연산
연산자 | 기호 | 의미 | 예 |
덧셈 | + | x와 y를 더함 | x + y |
뺄셈 | - | x와 y를 뺌 | x - y |
곱셈 | * | x와 y를 곱함 | x * y |
나눗셈 | / | x와 y를 나눔 | x / y |
나머지 | % | x를 y로 나눌 때의 나머지 값 | x % y |
- 사칙 연산자들은 이항 연산자라고 불리는데 두 개의 피연산자를 가지기 때문
* 나눗셈 연산자 /를 사용할 때는 주의해야 함
- 피연산자 중 하나라도 부동소수점형이면 전체의 계산이 부동소수점형 나눗셈이 됨 ex) 10.0 / 5 의 값은 2.0
- 정수를 0으로 나누면 오류가 발생하면서 프로그램 실행이 중지됨
+ 부동소수점형을 0으로 나누면 무한대 값을 나타내는 NaN이 발생함
* 나머지 연산자 %를 이용해 짝수 검사를 많이 함
- x % 2의 값이 0이라면 x는 2의 배수라는 말이기에 짝수임
~ 증감 연산자
: ++, --기호를 이용하여 변수의 값을 증가시키거나 감소시키는 연산자
- 피연산자의 앞이나 뒤에 올 수 있음
단, 수식의 해석에 상당한 차이가 있음
연산자 | 의미 |
++i | i값을 먼저 증가한 후에 다른 연산에 사용함 // 수식의 값은 증가된 i값 |
i++ | i값을 먼저 사용한 후에 증가함 // 수식의 값은 증가되지 않은 원래의 i값 |
--i | i값을 먼저 감소한 후에 다른 연산에 사용함 // 수식의 값은 감소된 i값 |
i-- | i값을 먼저 사용한 후에 감소함 // 수식의 값은 감소되지 않은 원래의 i값 |
~ 관계 연산자
: 두 개의 피연산자를 비교하는데 사용됨
- 결과는 true(참) 아니면 false(거짓)으로 계산됨
연산자 기호 | 의미 | 사용 예 |
== | x와 y가 같은가? | x == y |
!= | x와 y가 다른가? | x != y |
> | x가 y보다 큰가? | x > y |
< | x가 y보다 작은가? | x <y |
>= | x가 y보다 크거나 같은가? | x >= y |
<= | x가 y보다 작거나 같은가? | x <= y |
~ 논리 연산자
: 여러 개의 조건을 조합하여 참인지 거짓인지를 따질 때 이용
연산자 기호 | 사용예 | 의미 |
&& | x && y | AND연산, x와 y가 모두 참이면 참, 아니면 거짓 |
|| | x || y | OR연산, x나 y중에서 하나만 참이면 참, 아니면 거짓 |
! | ! x | NOT연산, x가 참이면 거짓, x가 거짓이면 참 |
형변환
: 하나의 자료형을 다른 자료형으로 변환하는 방법
- 자동적으로 발생하기도 하고 강제적으로 변환하도록 할 수도 있음
~ 자동적인 형변환
: 확대 변환으로 더 큰 크기의 변수로 값을 이동하는 변환에 해당하는 안전한 변환
ex)
double d = 23;
23이 23.0으로 변환되어 변수 d에는 23.0이라는 값이 들어가있게 됨
아무런 정보도 손실되지 않음 but 정밀도를 잃어버릴 수 있음
~ 강제적인 형변환
- 형변환 연산자를 사용
+ 형변환 연산자는 변환하려는 값의 앞에 괄호를 치고 원하는 자료형을 적어주면 됨
y = (double)x;
i = (int) 12.5;
- y 변수에 x에 들어있던 값이 double형으로 형변환되어 들어감
- 변수 i에 소수점 이하가 없어지고 정수 부분만 남게 되어 12라는 정수 값만 들어감
우선 순위
- 우선적으로 계산되어야 하는 항목에 괄호를 쳐주는 것이 가장 안전한 방법임
- 괄호 () > 단항 ++,-- > 산술 +,-,*,/ > 관계 == > 논리 && > 삼항 ? > 배정 = > 콤마 , 순으로 기억하면 좋음
결합 규칙
: 동일한 우선 순위의 연산이 있는 경우에 무엇을 먼저 수행하느냐에 대한 규칙
~ 왼쪽 우선 결합 규칙 : 왼쪽에서 오른쪽으로 수행함
ex) 이항 연산자
~오른쪽 우선 결합 규칙 : 오른쪽 연산자부터 먼저 수행하는 것
ex) 단항 연산자, 대입 연산자
문자열
:문자들의 모임
- 자바 언어에는 내장된 문자열 자료형이 없음 ~> String 클래스가 제공됨
문자열은 참조 자료형에 해당됨
- String 객체들은 + 연산자를 이용하여 문자열과 문자열, 변수값과 문자열을 합침
String s1 = "Hello World";
String s2 = "I'm a new Java programmer!"
int age = 2021
System.out.println(s1 + age + s2);
입력과 출력
~ 입력하기
- 대부분 Scanner 클래스 이용
1. 프로그램의 첫줄에 다음과 같은 문자을 추가함
import java.util.*; // Scanner 클래스 포함
- java.util 패키지에 포함된 모든 클래스를 포함시키고 있음
- * 표시 : "모든"이라는 의미
2. System.in에 연결된 Scanner 객체를 다음과 같은 문장으로 생성함
Scanner input = new Scanner(System.in);
- new 연산자 : 객체를 생성하는 연산자
3. Scanner가 제공하는 다양한 메소드를 이용하여서 입력을 받으면 됨
System.out.print("문장을 입력하시오: ");
String line = input.nextLine(); // 한 줄을 읽음
String word = input.next(); // 한 단어를 읽음
System.out.print("나이를 입력하시오: ");
int age = input.nextInt(); // 정수를 읽음
~ 출력하기
- println() : 문자열을 출력한 후에 줄을 바꾸는 메소드
- print() : 문자열 출력 후에 줄을 바꾸지 않는 메소드
+ 출력 형식 지정자
형식 지정자 | 의미 | 예 |
%d | 정수를 출력 | System.out.printf("%d",10); |
%f | 실수를 표시 | System.out.printf("%f",3.14); |
%c | 문자를 표시 | System.out.printf("%c",'a'); |
%s | 문자열을 표시 | System.out.printf("%s","Hello"); |
'JAVA' 카테고리의 다른 글
JAVA 기초 개념 (3) (0) | 2021.07.01 |
---|---|
JAVA 기초 개념 (1) (0) | 2021.06.28 |