오늘의 수업은 변수와 연산자이다
1. -변수(variables)-
a.어떠한 데이터(자료)를 담는 공간
b.가장 마지막으로 저장한 데이터가 변수에 남아있음(기존데이터는 사라짐) - 덮어쓰기 개념
c.변수를 다룰떄는 '='을 사용하고 항상 우변의 내용을 좌변에 담는다(항상 우변이 먼저 처리된다.)
좌변=우변
예를 들어 a=b 이다 라고 변수를 만들게 되면 a 라는 공간안에 b가 들어가게되는것이다
d. 자바는 데이터타입에 대해 엄격하다
i. 처음선언한 타입으로 쭉 사용하는 것이 일반적
ii. 정수 타입으로 선언 했으면 계속 정수 데이터를 쓰는것이 보통이고, 필요에따라서는 다른 타입의 데이터를 다룰 수도 있는데
형 변환이라는 과정을 거쳐야함
e.자바 데이터 타입
i. 정수형(-숫자,0,숫자)
1.int.long.byte,char,short
a. 각 타입은 할당된 크기가 다름. long이 가장 크며, 많은 숫자를 다룰수 있음(2^63)
ii. 실수형(소수)
1. flot. double
iii. 논리형(참/거짓)
1. boolean
2. 논리형 변수에는 true,false 두가지 값만 사용가능
iv. 문자형
1.String
2. 자바의 데이터 타입은 아니며, 자바의 클래스 타입이지만 보통 String 타입으로 불러서 사용함.
3""안에 데이터를 작성하며, 문자, 숫자, 특수문자 등 모든 형태의 값을 쓸 수 있음.
f. 변수 선언
i.자바의 변수 선언 문법에 따라 선언을 해줘야 자바가 해당 변수에 저장된 데이터를
처리할수있음
ii.문법
[타입] [변수이름] = [변수에 저장할 값];
// 10 이라는 값을 num1 이라는 변수에 저장할 때
int num1 = 10;
//num2 라는 정수형 변수를 선언(값은 없음)
int num2;
// 1.234라는 값을 num3 라는 변수에 저장할때
double num3 = 1.234;
// ture 라는 값을 num4 라는 변수에 저장할때
boolean num4= ture;
// 안녕하세요~반갑습니다 ㅎ라는 값을 num5라는 변수에 저장할때
String num5 = "안녕하세요~반갑습니다";
string + string의 경우 연결에 의미를 가진다
<변수 선언의 예>
package ch01_variables;
public class Ex01_Variables {
public static void main(String[] args) {
// 본인의 이름, 나이, 키, 주소, 전화번호를 입력할 수 있는 변수를 각각 선언 해봅시다.
String num1 = "남정욱";
int num2 = 30;
double num3 = 177.3;
String num4 = "인천 광역시 부평구 xxxxx xxxxxx";
String num5 = "010 1234 5678";
//변수값 출력
System.out.println(num1);
System.out.println("num1");
System.out.println("저의 이름은" + num1 + "입니다");
}
}
2.연산자 (Operatot)
a. 변수 또는 데이터간에 계산(연산)을 위한 기호
b.연산 수행 결과를 활용하기 위한 목적이 많음
c. 산술 연산자
i. +:덧셈
ii. -:뺄셈
iii. *:곱셈
iv. /:나눗셈
1 정수끼리의 나눗셈 결과는 정수로 나옴
2 10/3의 결과는 3.3333이아니라 3
v. % 나머지의 연산자
1 정수끼리의 나눗셈 결과에서 나머지 값을 결과로 전달해줌
2 예) 10%3의 결과는 1, 13%5의 결과는 3
<산술 연산자>
/**
* num1, num2 두개의 정수형 변수를 선언하고 값은 마음대로
* 두 변수의 +,-,*,/,% 연산결과를 print() 를 활용하여 출력해 봅시다
* 출력방법
* System.out.println(num1 + num2)
*/
int num1 = 15;
int num2 = 3;
System.out.println("덧셈결과: " +num1+num2); // 앞쪽에 string 변수가 오면 연결에 의미로 받아들임
System.out.println("덧셈결과: " +(num1+num2)); // 앞쪽에 string 변수가 오게 하려면 ()를 사용하여 따로 계산하게 만들어 주어야함
System.out.println(num1+num2);
System.out.println(num1-num2);
System.out.println(num1*num2);
System.out.println(num1/num2);
System.out.println(num1%num2);
// 계산 결과를 담을 변수 활용
int result = 0;
result = num1 + num2;
System.out.println(result);
result = num1 - num2;
System.out.println(result);
result = num1 * num2;
System.out.println(result);
result = num1 / num2;
System.out.println(result);
result = num1 % num2;
System.out.println(result);
// 계산 결과 변수를 따로 선언
int sumResult = num1 + num2;
System.out.println(sumResult);
int subResult = num1 - num2;
System.out.println(subResult);
int mulResult = num1 * num2;
System.out.println(mulResult);
int divResult = num1 / num2;
System.out.println(divResult);
int remainResult = num1 % num2;
System.out.println(remainResult);
d 비교 연산자
i. 비교연산자를 기준으로 양쪽의 변수 (값)을 비교한 결과를 boolean(ture/false)값우로 전달해줌
ii.<,>,<=,>=,==,!=
1. 7>6 = ture
2. 8>19 = false
3. 8==20 = false
4. 8 != 20 = trus
e 대입 연산자
i. 반목문 등에서 많이 활용하며,산술연산자와 함께 사용
ii. +=, -=, *=, /=, %=
iii. 활용
1. a += b "=" a= a+b
a. a가 가진 값에 b가 가진값을 더해서 a에 대입
2. a -= b "=" a = a - b
<비교 연산자>
System.out.println(10>5);
System.out.println(10<5);
boolean result = 77<=60;
System.out.println(result);
result = (8 ==100);
System.out.println(result);
result = false;
boolean bool1 = true;
//변수값을 다른 변수에 대입하는 것은 복사 개념
result = bool1;
System.out.println(result);
System.out.println(bool1);
f. 논리 연산자
i. 논리연산자 양쪽에는 boolean 타입의 값 또는 boolean 타입으로 결과가 나오는 연산식이 와야함.
ii.종류
1 &&(AND 연산)
a. && 기준으로 양쪽 모두 true 여야 결과가 true이며 하나라도 false 라면 결과는 false
b. 예)
i. ture && ture = ture
ii. ture && false = false
iii. false && ture = false
iv. false && false = false
v. (10> 7) && (20 == 20) =? ture
vi. (9< 1) && (10 !=9)=? false
2. || (OR연산)
a. || 기준으로 양쪽 모두 false 여야 결과가 false 이며 하나라도 ture 라면 결과는 ture
b. 예)
i. ture || ture = ture
ii. ture || false = ture
iii. false || ture = ture
iv. false || false = false
3. !(NOT 연산)
a. boolean 변수 앞 또는 boolean 결과가 나오는 식 앞에 붙일 수 있으며, 해당 값을 반전시킴
i. 예)
// boolean 타입 변수
boolean a = ture
System.out.println(a); = ture
System.out.println(!a); = false
<논리연산자>
System.out.println(true && true);
System.out.println(false && false);
System.out.println(true || true);
boolean bool1 = true;
boolean bool2 = false;
boolean bool3 = true;
System.out.println(bool1 && bool2);
//boo12, bool3의 OR 연산 결과를 result 라는 변수에 담고 result 변수값 출력
boolean result = bool2 || bool3;
System.out.println(result);
//num1, num2 정수형 변수에 각각 10, 20을 대입하여 선언하고
//num1 > num2 결과를 result1 에 저장하고
//num1 != num2 결과를 result2 값에 저장해서
// result1 && result2 결과를 result3 에 저장한뒤
// result3 의 값을 출력
int num1 = 10;
int num2 = 20;
boolean result1 = num1 > num2;
boolean result2 = num1 != num2;
boolean result3 = result1 && result2;
System.out.println(result3);
boolean result4 = (num1 > num2) && (num1 != num2);
System.out.println(result4);
System.out.println(bool1); // t
System.out.println(!bool1); //f
System.out.println(bool1 && bool2); //f
System.out.println(!bool1 && bool2); //t
System.out.println("Not 연산 수행전" + bool2);
bool2 = !bool2;
System.out.println("Not 연산 수행후" + bool2);
g. 증감 연산자
i. 종류 ++,--
ii. 증감연산자는 정수형 변수 앞 또는 뒤에 붙일수 있으며, 위치에 따라 동작이 다름.
iii. 반복문 등에서 변수값을 일정하게 증가 또는 감소 시킬때 활용
vi. ++: 변수가 가지고 있는 값에 1을 더해줌.
-- : 변수가 가지고 있는 값에서 1을 뺌.
iv. 예) 정수형 변수 num 이 5라는 값을 가지고 있다면
1. num ++:num 이 가지고 있는값(5)을 계산에 활용하고 계산이 끝나면 num 값을 6으로 저장함.
a
int num = 5;
int result = 10 + num++;
systehttp://m.out.print(result); //15
2. ++num: num이 가지고 있는 값(5)에 1을 더해서 6으로 만든 뒤 계산에 활용함.
int num = 5;
int result = 10 + ++num;
systehttp://m.out.print(result); //16
<증감연산자>
int num1 = 10, num2 = 0, num3 = 0;
System.out.println("num1: " + num1 + "num2: "+ num2 + "num3: " + num3);
num2 = ++num1;
System.out.println("num1: " + num1 + "num2: "+ num2 + "num3: " + num3);
num2 = ++num1;
num3 = num1++;
System.out.println("num1: " + num1 + "num2: "+ num2 + "num3: " + num3);
// num1 12 num2 12 num3 0
// num1 12 num2 12 num3 12
int result1 = num1++ + ++num2;
System.out.println("num1: " + num1 + "num2: "+ num2 + "num3: " + num3);
System.out.println(result1);
// 계산전
// num1 13 num2 13
// 계산 후
// nu1 = 14 + num2 13 + num3= 0
//result1= 26
'개발일지' 카테고리의 다른 글
개발일지 8일차 -for문의 응용- (2) | 2023.12.05 |
---|---|
개발일지 7일차 -Switch case & for반복문- (0) | 2023.12.04 |
개발일지 6일차 - <Scanner, 자바 제어문> (1) | 2023.12.01 |
개발일지 4일차 -Java- (0) | 2023.11.29 |
개발일지 3일차 -function,while- (1) | 2023.11.28 |