1. JAVA/4). 자바_실전_이클립스

자바실전_Day_03_01(연산자)

구이제이 2024. 1. 8. 18:13

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

1번째 예제

 

package operator1;

 

public class OperatorExam01 {

 

public static void main(String[] args) {

//System.out.println(5 / 3); // 1

//System.out.println(4 / 0); // java.lang.ArithmeticException: / by zero

//System.out.println(4 / 0.0); //Infinity

 

int num1 = 5;

int num2 = 3;

 

System.out.println("num1 + num2 = "+ num1 + num2); //문자열와 숫자더하면 숫자는 문자열로 바뀌어요

 

System.out.println("num1 + num2 = "+ num1 + num2); //문자열와 숫자더하면 숫자는 문자열로 바뀌어요

//숫자8을 만들고 싶다면 ()괄호를 붙인다.

 

System.out.println("num1 + num2 = "+ (num1 + num2));

System.out.println("num1 + num2 = "+ (num1 - num2));

System.out.println("num1 + num2 = "+ (num1 * num2));

System.out.println("num1 + num2 = "+ (num1 / num2));

System.out.println("num1 + num2 = "+ (num1 % num2));

 

System.out.println( 35.2 % 2.3); //나머지는 실수가아니라 정수에만.

System.out.println(2 + 3 * 5 / 2 - 7 ); //최악의 코드 : 보고 단순해야된다. 보고 바로 해석할수있도록 짜야한다.

//연산자 순서모른다면 괄호를 쳐야된다.

//* 곱하기 나누기,더하기 빼기 보다 괄호가 우선순위이다.

 

//★

// 5/2 = 몫 구하기 구분

// 5%2 = 나머지 구분

 

 

 

 

//----------------------- 이것은 응용 문제입니다.------------------ 각자리수 구하기

 

 

int num =821;

int tmp1 =0;

int tmp2 =0;

 

int ttmp1 =0;

int ttmp2 =0;

int ttmp3 =0;

 

int sum = 0;

 

if(num>0) {

tmp1 = (num/10)*10; //750

tmp2 = (num/100)*100; //700

 

System.out.println("750이되게 합니다. : " +(tmp1));

System.out.println("700이되게 합니다. : " +(tmp2));

 

 

}

 

if(num>0) {

ttmp1 = num-tmp1; //756-750 = 6

ttmp2 = (num-ttmp1-tmp2)/10;//(756-6)10 = 5

ttmp3 = (num-(ttmp2*10)-ttmp1)/100; //(756-50-6)/100 = 7

 

sum = ttmp1+ttmp2+ttmp3;

System.out.println("각 자리수를 빼서 1 번째 숫자 = : " + ttmp1);

System.out.println("각 자리수를 빼서 2 번째 숫자 = : " + ttmp2);

System.out.println("각 자리수를 빼서 3 번째 숫자 = : " + ttmp3);

 

}

 

 

//Tea

// 7 + 5 + 6 = 구하기 응용(나누기와 몫으로)

 

//나머지와 몫으로

// 6은 몫으로 ,

// 5는 ,전체값에서 706을빼주고 10으로 나누기

// 7은 전체값에서 ((5*10)+6)계산한 값빼기

 

}

}

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

2번째 예제

 

package operator1;

 

public class OperatorExam02 {

 

public static void main(String[] args) {

 

int pen=357;

int student =13;

 

int get =0;

int remain =0;

 

get = pen/student;

remain = pen%student;

 

System.out.println("--------------------------------------");

System.out.println("학생 1인당 받을 연핏 갯수 : " + get);

System.out.println("나눠주고 남은 연필의 갯수 : " + remain);

System.out.println("--------------------------------------");

 

}

}

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------



3번째 예제

 

package operator1;

 

public class OperatorExam03 {

 

public static void main(String[] args) {

//#1. 변수 선언

int number = 756; //숫자

int share = 0; //숫자를 10으로 나눈 몫을 담을 변수

int result =0; //최종 결과를 담을 변수

 

 

//#2. 계산 처리

share = number / 10;

result = share *10;

 

System.out.println("숫자 : " + number);

System.out.println("숫자 / 10 : "+ share);

System.out.println("최종 결과 : " + result);

 

 

 

 

}

}

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------



4번째 예제

 

 

package operator1;

 

public class OperatorExam04 {

 

public static void main(String[] args) {

//

// int num = 4;

//

//

// if((num%2)==0) {

// System.out.println("B팀");

// }else {

// System.out.println("A팀");

// }

 

 

 

 

//Tea

//#1. 변수 선언

int number =5; //숫자

String result = "";//문자열초기화

char test = ' '; //문자열과 다르게 문자는 한칸 띄우고 초기화

 

//#2. 삼항 연산자 활용

// (조건) ? 조건의 결과가 참일 때 실행 문장 : 거짓일 때 실행할 문장;

result = (number % 2 == 1) ? "A팀" : "B팀"; //사용방법은 모른다.

// 삼항 연산자 : (트루펄스값) ? 값 : 값; 이다.

System.out.println(result);

System.out.println("------------------------------------------");

 

int score2 = 0;

score2 = 55;

 

String result2 = "";

 

 

result2 = (score2 >= 80) ? "합격" : "불합격";

System.out.println("시험의 결과 : " +result2 );

 

 

System.out.println("------------------------------------------");

//Tea

int score =55;

result = (score >= 80)? "합격" : "불합격";

System.out.println(result);

 

 

 

 

//심화문제:

//3의배수냐 5의 배수냐

//몆회이상이면 골드 플레티넘

 

}

 

}

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------



5번째 예제

 

 

 

package operator1;

 

public class OperatorExam05 {

 

public static void main(String[] args) {

 

int c=3;

 

// a=a+7;

// System.out.println("c=c+7 =>" + c); //c값 : 10

 

c +=7;

System.out.println("c+=7 =>" + c); //a값 : 10

 

c -=2; // a=a-2

System.out.println("c-=2 =>" + c); //a값 : 8

 

c *=2; // a=a-2

System.out.println("c*=2 =>" + c); //a값 : 16

 

c /=2;

System.out.println("c /=2 =>" + c); //a값 : 8

 

 

//증감연산자 전위형/후위형 계산법 (계산이 먼제 되냐 안되냐 차이)

c=0;

System.out.printf("%d\n",c++); //c먼저입력되고, 나중에 +1 계산이 된다.

System.out.println(c); //c계산이 끝난 값이 1

System.out.printf("%d\n",++c); //+1 계산이 먼저 되어 a와 함께 출력된다.

 

//선생님예제

 

int x=1;

int y=1;

int a=1;

int b=1;

 

int result1 = ++x + 10; // 12

int result2 = y++ + 10; // 11

 

int result3 = a-- +10; // 11

int result4 = --b + 10; // 10

 

System.out.println("result1 = "+result1);//결론적으로 result1에 저장된 값은 계산되어진 (x+1)+10전위형 값이 담겨져있다.

System.out.println("x : = "+x); // x값은 전위형 상관없이 결과값만 담겨져있다.

System.out.println("result2 = "+result2); //결론적으로 result2에 저장된 값은 후위형이므로 +1더하지 않는 y+10 값이 담겨져있다.

System.out.println("y : = "+y); // y값은 후위형과 상관없이 결과값만 담겨져있다.

System.out.println("result3 = "+result3); //결론적으로 result3에 저장된 값은 후위형이므로 -1을 빼지 않는 (b)+10 값이 담겨져있다.

System.out.println("result4 = "+result4); //결론적으로 result4에 저장된 값은 전위형이므로 계산되어진 (-1+b) + 10 = 값이 담겨져있다.

 

 

// a + b + c ( + +를 연산자 )(a,b,c 피연산자) (연산자 *,/,+,-)

//연산자

//피연산자

 

 

 

}

 

}