✿∘˚˳°∘°
4일차 : Operator 본문
2022/12/01
1. 연산자

- 연산자 기본
public void oper1() {
//대입연산자
//연산자기준(=)으로 오른쪽의 값을 왼쪽의 공간에 대입
int num = 100;
System.out.println("num : "+num);
num = 200;
System.out.println("num : "+num);
num += 100; //현재 num변수에 있는 값과 오른쪽 값을 더해서 num변수에 대입 num = num + 100;
System.out.println("num : "+num);
num -= 10;//num = num - 10
System.out.println("num : "+num);
}
public void oper2() {
int num1 = 10; //a++
int num2 = 10; //b++
System.out.println("num1 : "+num1);
num1++;//현재 자기자신의 값을 +1
System.out.println("num1 : "+num1);
num1--;//현재 자기자신의 값을 -1
System.out.println("num1 : "+num1);
System.out.println("num2 : "+num2);
++num2; //현재 자기자신의 값을 +1
System.out.println("num2 : "+num2);
--num2; //현재 자기자신의 값을 -1
System.out.println("num2 : "+num2);
System.out.println("/////////////////////////");
System.out.println(num1);
System.out.println(num1++);//후위연산 : 자기할일을 먼저 한 다음 +1(syso를 먼저진행하고 +1)
//인접연산 수행 후 증가
System.out.println(num1);
System.out.println("/////////////////////////");
System.out.println(num2);
System.out.println(++num2);//전위연산 : 자기할일을 하기 전에 +1증가시키고 할일(syso)을 진행
//증가 후 인접연산 수행
System.out.println(num2);
System.out.println("//////////////////////////");
int a = 10;
int b = (a--)+2; //후위연산이기때문에 인접연산인 a(10)+2=12가 먼저 진행되고 12-1 진행
//전위연산(--a)일경우엔 a(10)-1이 먼저진행되므로 9+2=11
System.out.println(a); //9
System.out.println(b); //12
System.out.println("///////////////////////////");
int x = 10;
int y = 10;
int z = (x++)+(++y)+x; // 10+11+11
//c언어 연산에서는 31(10+11+10) java연산 에서는 32(10+11+11)
System.out.println(x); //11
System.out.println(y); //11
System.out.println(z); //32
}
- 삼항 연산자
public void oper3() {
//삼항연산자 테스트
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수를 입력하세요 : ");
int num1 = sc.nextInt();
System.out.print("두번째 정수를 입력하세요 : ");
int num2 = sc.nextInt();
//int result = num1<num2? num1 : num2;//조건식이 true일 경우 :기준으로 앞(num1)이 출력
//조건식이 false일 경우 :기준으로 뒤(num2)가 출력
//System.out.println("결과 : "+result);
String str = num1<num2? "num1이 더 작습니다." : "num2가 더 작습니다." ;
//데이터타입이 꼭 동일할 필요는 없다. 바뀔 수 있음
System.out.println(str);
}
- 연산자 실습(1)
//연산자실습_문제1
public void exam1() {
//두수를 입력받고 +, -, *, /된 값이 출력되도록
//입력받은 두 수는 정수형 변수에 저장하고 나눈 수는 소수점 둘째자리까지 출력
Scanner sc = new Scanner(System.in);
System.out.println("첫번째 수 입력 : ");
int num1 = sc.nextInt();
System.out.println("두번째 수 입력 : ");
int num2 = sc.nextInt();
System.out.println("=====결과=====");
System.out.println("두 수를 더한 수 :"+(num1+num2));
System.out.println("두 수를 뺀 수 :"+(num1-num2));
System.out.println("두 수를 곱한 수 :"+(num1*num2));
System.out.printf("두 수를 나눈 수 : %.2f", ((double)num1/(double)num2));
//((double)num1/num2) : 실수/정수 연산시 범위가 더 큰 실수로 형변환이 일어나므로
//형변환은 num1 or num2 둘 중 하나를 해주면 된다.
//double div = (double)num1/num2;
//system.out.printf("두 수를 나눈 수 : %.2f", div)
}
public void exam2() {
// 다음 코드를 보고 각각 무엇이 출력 될 지 맞추어라(결과를 생각한 후 코드를 작성)
int a = 40, b = 20;
a += b;
System.out.printf("a의 값 : %d, b의값 : %d \n", a, b); //60 20
a -= b;
System.out.printf("a의 값 : %d, b의값 : %d \n", a, b);//40 20
b *= a;
System.out.printf("a의 값 : %d, b의값 : %d \n", a, b);//40 800
b /= a;
System.out.printf("a의 값 : %d, b의값 : %d \n", a, b);//40 20
}
public void exam3() {
// 다음 코드를 보고 각각 첫번째 결과값과 두번째 결과값이 무엇이 출력 될 지 맞추어라.(결과를 생각한 후 코드를 작성)
int a = 10, b = 20, c = 30, d = 40;
boolean result1, result2;
result1 = ((a < 20 && b > 10) && (c == 20 || d == 40));
result2 = ((a == 10 && b != 2*10) || (c == 30 && d != 40));
System.out.printf("첫번째 결과 값 : %b \n", result1); //true
System.out.printf("첫번째 결과 값 : %b \n", result2); //false
}
public void exam4() {
//나이를 입력 받아 나이가 19세보다 많으면 "성입입니다 어서오세요" 출력 / 19세보다 적으면 "미성년자는 입장불가입니다" 출력
Scanner sc = new Scanner(System.in);
System.out.print("나이를 입력하세요 : ");
int age = sc.nextInt();
//입력받은 나이가 19세보다 많으면 성인, 아니면 미성년자
String msg = age>19? "성인입니다.어서오세요.":"미성년자는 입장불가입니다.";
System.out.println(msg);
//System.out.println(age>19?"성인입니다":"미성년자");
//변수선언을 하지않고 바로 출력가능
}
- 연산자 실습(2)
public void exam1() {
//국어 영어 수학점수를 입력 받고 합계와 평균을 계산 및 출력 후 합격불합격처리
//각 점수가 40점이상이며 평균이 60점이상인경우 합격, 그외 불합격
//합계 : 정수, 평균 : 실수
Scanner sc = new Scanner(System.in);
System.out.print("국어 점수 입력 : ");
int kor = sc.nextInt();
System.out.print("수학 점수 입력 : ");
int math = sc.nextInt();
System.out.print("영어 점수 입력 : ");
int eng = sc.nextInt();
int sum = kor+math+eng;
double avg = (double)sum/3; // sum/3.0 도 가능
boolean bool = kor>=40 && math>=40 && eng>=40 && avg>=60;
String msg = bool? "합격":"불합격";
System.out.println("합계 : "+sum);
System.out.printf("평균 : %.2f \n", avg);
System.out.println(msg);
}
public void exam2() {
//정수를 입력받고 홀짝 구분
//짝수의 정의 : 2로 나눴을 때 나누어 떨어지는 수
//나누어 떨어진다 -> 나머지가 0
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
String str = (num%2) == 0 ? "짝수":"홀수";
System.out.println(str);
}
'국비수업 > JAVA' 카테고리의 다른 글
6일차 : Break, Continue, Random (0) | 2022.12.06 |
---|---|
5일차 : 제어문 (0) | 2022.12.06 |
3일차 : Scanner, 연산자 (0) | 2022.12.06 |
2일차 : 기본코드, 숫자와 문자, 변수 (0) | 2022.12.06 |
1일차 : OT (0) | 2022.12.05 |
Comments