연산자란?
일정한 규칙을 가지고 계산하는 것으로서, 우리가 일상생활에서 사용하고 있는 덧셈, 뺄셈, 곱셈, 나눗셈을 비롯하여
프로그램에서는 자동 증감, 동등 비교, 비트 연산 등 많은 연산자가 있다.
연산자(Operations) : 연산에 사용되는 표시나 기호(/,+ ,%,*....)
피연산자(Operand) : 연산에 사용되는 데이터(리터럴, 변수)
ex) 1 + 2 = 3
피연산자 연산자 피연산자
컴퓨터와 소통하기 위한 다양한 방법들 - (산술, 자동증감, 동등비교, 논리, 삼항, 할당 연산자)
산술 연산자 : +, - , *, /, %
증가, 감소 연산자 :++ --
ex) b = a++(후위)
b의 값에 a를 대입한후 a갑을 1증가
ex) b =++a(전위)
변수 a의 값을 1로 증가시킨후 변수 b에 a를 대입
문자열 연결 연산자 +
ex) System.out.prrintln("num1+num2는" + (num1+num2) +"입니다.")
동등비교, 관계 연산자 ==, !=, <, >, >=, <=
논리 연산자 &&, ||
삼항 연산자 ‘?’를 이용한 연산
할당 연산자 =
줄여쓰는 연산자(대입연산자) 연산 후 대입
+=.-=,*=,/=,%=,&=(논리 곱), |=(논리 합), ^= (배타적 논리합), <<=(왼쪽 시스트 연산)
>>=(오는쪽 시스트 연산_
>>>= 부호 없는 오른쪽 시프트 연산
a+=b ; a+b의 값을 a에 대입, a = a+b
시프트 연산자
x << n = x * 2^n
x >> n = x / 2^n
정수를 2진수로 표현했을 때 경우의 자릿수를 왼쪽 또는 오른쪽으로 지정한 수만큼 이동
ex) 5<<2
5 0000000000000101
<<2
20 0000000000010100
ex) 5 >>2
5 0000000000000101
>>2
1 0000000000000001 101중 2칸이 지워지면서 맨 왼쪽에 2자리만큼 0으로 채워진다.
package com.javalec.calex;
public class CalculationEx {
public static void main(String[] args) {
int i = 10;
int j = 3;
int h = 5;
System.out.println("===산술 연산자====");
System.out.println("덧셈: " + (i + j)); // 13 식의 값을 출력하기 위해 + 연산자를 사용한다.
System.out.println("뺄셈 : " + (i - j)); // 7
System.out.println("곱셈 : " + (i * j)); // 30
System.out.println("니눗셈 : " + (i / j)); // 3
System.out.println("나머지 : " + (i % j)); // 1
문자열과 변수 사이를 연결할때는 +연산자를 사용한다.
출력결과
===산술 연산자====
덧셈: 13
뺄셈 : 7
곱셈 : 30
니눗셈 : 3
나머지 : 1
System.out.println("=== 자동증감 연산자===");
i++; // i = i + 1
System.out.println("증가 : " + i);
j--; // j = j - 1
System.out.println("감소 : " + j);
=== 자동증감 연산자===
증가 : 11
감소 : 2
System.out.println("=== 동등비교, 관계연산자 ===");
System.out.println("i == j >> " + (i == j));
System.out.println("i != j >> " + (i != j));
System.out.println("i > j >> " + (i > j));
System.out.println("i < j >> " + (i < j));
=== 동등비교, 관계연산자 ===
i == j >> false
i != j >> true
i > j >> true
i < j >> false
System.out.println("=== 논리 연산자 ===");
System.out.println("&&(AND) >> " + (i > j && i > h)); and는 둘다 만족해야함
System.out.println("&&(AND) >> " + (i > j && i < h)); or는 둘중 하나만 만족해도 됨
System.out.println("||(OR) >> " + (i > j || i < h));
System.out.println("||(OR) >> " + (i > j || i > h));
System.out.println("=== 삼항 연산자 ===");
int result = h != 5 ? 1 : 2; ?기준으로 봐야한다. h가 5인데 아니라고 했으므로 2가 반환된다.
System.out.println("삼항연산 결과(result) " + result);
최우선 연산자()[].-> 단항연산자 -> 산술연산자 -> 쉬프트 연산자 -> 관계연산자 -> 비트연산자(&,^,|) ->
논리 연산자 -> 삼항 연산자 -> 배정 대입 연산자 -> 증감 후위 연산자 -> 순차 연산자
키보드로 부터 입력을 받는 경우
BufferedReader 변수명 = new BufferedReader(new InputStreamReader(System.in))
import java.io. *;
public class Sample3 {
public static void main(String[] args) throws IOException
{
// TODO Auto-generated method stub
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine(); // 입력된 문자열을 가리키는 변수 str을 사용
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Sample4 {
public static void main(String[] args) throws IOException
{
// TODO Auto-generated method stub
System.out.println("문자열을 입력하십시오");
BufferedReader br =
new ③BufferedReader(new ②InputStreamReader(①System.in)); ---> 1. 키입력, 2. 바이트 스트림 -> 문자 스트림으로 변환(한글입력가능), 3. 버퍼메모리에 저장하겠다.는의미
String str = br.readLine(); ---> 라인 단위로 읽어들인다.
System.out.println(str + "이/가 입력되었습니다.");
}
}
실행화면
문자열을 입력하십시오
안녕하세요
안녕하세요 이/가 입력되었습니다.
2개 이상 숫자 입력하기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Sample6 {
public static void main(String[] args) throws IOException
{
// TODO Auto-generated method stub
System.out.println("정수를 입력하십시오");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str1 = br.readLine();
String str2 = br.readLine();
int num1 = Integer.parseInt(str1);
int num2 = Integer.parseInt(str2);
System.out.println("먼저\t" + num1 + "이/가 출력되었습니다.");
System.out.println("그 후에\t" + num2 + "이/가 출력되었습니다.");
}
}
string 변수 2개와
int 변수 2개
그리고 출력할 함수 각각 2개가 필요하다.
형변환
-큰 사이즈의 형에 대입하기
public class Appilcation {
public static void main(String[] args) {
// TODO Auto-generated method stub
int inum = 160;
System.out.println("키는" + inum + "센티미터 입니다.");
System.out.println("double형 변수에 대입합니다.");
double dnum = inum;
System.out.println("키는" + dnum + "센티미터 입니다.");
}}
실행결과
키는160센티미터 입니다.
double형 변수에 대입합니다.
키는160.0센티미터 입니다.
작은 사이즈의 형에 대입하기
ublic class Appilcation {
public static void main(String[] args) {
// TODO Auto-generated method stub
double dnum = 160.5;
System.out.println("키는" + dnum + "센티미터 입니다.");
System.out.println("double형 변수에 대입합니다.");
int inum = (int)dnum;
System.out.println("키는" + inum + "센티미터 입니다.");
}}
실행결과
키는160.5센티미터 입니다.
double형 변수에 대입합니다.
키는160센티미터 입니다.
'프로그래밍 > java' 카테고리의 다른 글
배열 (494) | 2017.08.25 |
---|---|
반복문(for,while,do ~ while문, 중첩문, break, continue) (512) | 2017.08.24 |
조건문(if, else ~if, switch문) (491) | 2017.08.23 |
2. JAVA프로그래밍이란(2) (505) | 2017.08.21 |
1, java 프로그래밍이란(1) (490) | 2017.08.21 |