본문 바로가기
Example 2018

연산자 연습 프로젝트 - 연산자통합, 주민등록처리, 삼항연산자

by ZEROMI 2018. 4. 8.
728x90

package 연산자.샘플;


import java.util.Scanner;


public class 연산자테스트샘플 {

public void 괄호연산자테스트(){

/*int num1 = 12;

int num2 = 33;*/

int num1 = 12, num2 = 33;  //나열연산자

System.out.println("계산1 : " + 

               (num1 + 5 * num2));

System.out.println("계산2 : " + 

               ((num1 + 5) * num2));

}

public void 부호연산자테스트(){

int num = -25;

System.out.println("num : " + +num);

System.out.println("-num : " + -num);

//-부호연산자는 -1 * 라는 뜻임

//-1 * -25 => 25가 됨

}

public void 증감연산자테스트(){

//++ : 1증가, -- : 1감소

int num = 10;

System.out.println("num : " + num);

num++;  //num = num + 1;

System.out.println("num++ : " + num); //11

++num;

System.out.println("++num : " + num); //12

num--;

System.out.println("num-- : " + num); //11

--num;

System.out.println("--num : " + num); //10

//증감연산자가 변수와 함께 단독 사용시에는

//변수앞/뒤 구분 안 함 : 결과는 동일함

//증감연산자가 변수와 함께 다른 문장 또는 식의

//일부분으로 사용시에는 변수 앞/뒤 구분함

int result = num++;  //처리후 증가를 의미함

System.out.println("result : " + result);

System.out.println("num : " + num);

int result2 = ++result;  //증가후 처리

System.out.println("result2 : " + result2);

System.out.println("result : " + result);

System.out.println("result2++ : " + result2++);

System.out.println("result2 : " + result2);

System.out.println("++result2 : " + ++result2);

}

public void 형변환연산자테스트(){

byte b1 = Byte.MAX_VALUE;  //127

short s1 = Short.MAX_VALUE; //32767

//int result = b1 + s1;

short result = (short)(b1 + s1);  //overflow

//byte + short => short + short => int

System.out.println("result : " + result);

}

public void 비교연산자테스트(){

int first = 100, second = 123;

System.out.println("first > second : " + 

         (first > second));  //false

System.out.println("first < second : " + 

         (first < second));  //true

System.out.println("first > 0 : " + 

         (first > 0));  //양수냐 : true

System.out.println("first >= 100 : " + 

         (first >= 100));  //100이상이냐 : true

System.out.println("second <= 200 : " + 

         (second <= 200)); //200이하냐 : true

System.out.println("first 변수값이 100이냐 : " + 

         (first == 100));  //true

System.out.println("first 변수값이 100이 아니냐 : " + 

         (first != 100));

System.out.println("first 변수값이 100이 아니냐 : " + 

         !(first == 100));

}

public void 일반논리연산자연습1(){

//논리값(true/false)으로 계산하는 연산자

System.out.println(true && true); //true

System.out.println(true && false); //false

System.out.println(false && true); //false

System.out.println(false && false); //false

System.out.println(true || true); //true

System.out.println(true || false); //true

System.out.println(false || true); //true

System.out.println(false || false); //false

}

public void 일반논리연산자연습2(){

//&& : 제시한 모든 조건이 다 맞는지 확인할 때

//범위 확인

//예1 : 키보드로 정수를 하나 입력받아

// 1부터 100사이의 값인지 확인

// 1 <= 정수 <= 100

System.out.print("정수 하나 입력 : ");

int num = new Scanner(System.in).nextInt();

System.out.println(num + 

"값이 1~100 사이의 값이냐 : " + 

(num >= 1 && num <= 100));

}

//연습1 : 키보드로 정수를 하나 입력받아서

//       양수인지 확인하는 구문 작성 실행

public void 양수냐(){

System.out.print("정수 하나 입력 : ");

int num = new Scanner(System.in).nextInt();

System.out.println(num + 

" 은 양수냐? " + (num > 0));

}

//연습2 : 문자하나를 입력받아, 영문대문자인지 확인

//'A' <= 문자 <= 'Z' 또는 65 <= 문자 <= 91

public void 대문자냐(){

System.out.print("문자하나 입력 : ");

/*String value = new Scanner(System.in).next();

char ch = value.charAt(0);*/

char ch = new Scanner(System.in).next().charAt(0);

/*System.out.println(ch + " 가 대문자냐? "

+ (ch >= 'A' && ch <= 'Z'));*/

System.out.println(ch + " 가 대문자냐? "

+ (ch >= 65 && ch <= 91));

}

//연습3 : 문자하나를 입력받아, 

//     그 문자가 'Y' 또는 'y' 이냐

public void 예쓰이냐(){

System.out.print("문자 하나 입력 : ");

char answer = new Scanner(System.in).next().charAt(0);

System.out.println("예쓰입니까? " + 

    (answer == 'Y' || answer == 'y'));

}

//연습4 : 국어, 영어, 수학 점수를 입력받아

// 총점과 평균을 계산하고

// 3과목의 점수가 모두 40점이상이고, 

//평균이 60점이상이냐

public void 합격이냐(){

Scanner 키보드 = new Scanner(System.in);

System.out.print("국어점수 : ");

int 국어 = 키보드.nextInt();

System.out.print("영어점수 : ");

int 영어 = 키보드.nextInt();

System.out.print("수학점수 : ");

int 수학 = 키보드.nextInt();

int 평균 = (국어 + 영어 + 수학) / 3;

System.out.println("합격이냐 ? " + 

(국어 >= 40 && 영어 >= 40 && 

수학 >= 40 && 평균 >= 60));

}

//&&, || 연산자의 특징 확인

//&&는 앞이 거짓이면 뒤를 실행 안 함

//거짓 && 참, 거짓 && 거짓 => 결론은 거짓임

//거짓 & 참, 거짓 & 거짓 => 결론은 false임 (뒤를 실행함)

//|| 는 앞이 참이면 뒤를 실행 안 함

// true || true => true, true || false => true

// true | true => true, true | false => true

//  (뒤까지 실행함)

public void 일반논리연산자특징확인(){

int num = 10;

System.out.println(false && ++num > 0);

System.out.println("num : " + num);

System.out.println(true || ++num > 0);

System.out.println("num : " + num);

System.out.println(false & ++num > 0);

System.out.println("num : " + num);

System.out.println(true | ++num > 0);

System.out.println("num : " + num);

}

public void 삼항연산자테스트(){

//첫번째 ? 두번째 : 세번째

//조건문의 형태를 가진 연산자임

//조건식? 참일때 사용할 값: 거짓일때 사용할값

//조건식은 반드시 결과가 참 또는 거짓이 나와야함

//예 : 정수를 하나 입력받아, 짝수이면 "짝수다."

//   짝수가 아니면 "홀수다." 출력 처리

System.out.print("정수 하나 입력 : ");

int num = new Scanner(System.in).nextInt();

/*String result = 

(num % 2 == 0)? "짝수다." : "홀수다.";

System.out.println(num + " 은 " + result);*/

System.out.println(num + " 은 " + 

   ((num % 2 == 0)? "짝수다." : "홀수다."));

}

//삼항연산자 중첩 사용

// 조건1? 값1: (조건2? 값2: (조건3? 값3: 값4) )

public void 삼항연산자중첩사용(){

//정수를 하나 입력받아, 

//양수이면 "양수다.", 0이면 "0이다.", 

//음수이면 "음수다."

System.out.print("정수 하나 입력 : ");

int num = new Scanner(System.in).nextInt();

String result = (num > 0)? "양수다." : 

    ((num == 0)? "0이다." : "음수다.");

System.out.println(num + " : " + result);

}

//연습 : 문자를 하나 입력받아

//영어대문자이면 "upper", 소문자이면 "lower",

//숫자문자이면 "number", 그외 문자는 "etc" 로 출력

public void 삼항연산자중첩테스트2(){

System.out.print("문자 하나 입력 : ");

char ch = new Scanner(System.in).next().charAt(0);

String result = (ch >= 'A' && ch <= 'Z')? "upper":

((ch >= 'a' && ch <= 'z')? "lower": 

((ch >= '0' && ch <= '9')? "number": "etc"));

System.out.println(ch + " : " + result);

}

//연습 : 점수(int)를 입력받아

// 90점이상이면 'A', 80점이상 90점미만이면 'B',

// 70점이상 80점미만이면 'C', 

//60점이상 70점미만 'D', 60점미만은 'F' 를

// 변수에 기록하고 출력 처리함

public void 성적등급출력(){

System.out.print("점수 : ");

int score = new Scanner(System.in).nextInt();

char grade = (score >= 90)? 'A':

((score >= 80 /*&& score < 90*/)? 'B':

((score >= 70 /*&& score < 80*/)? 'C':

((score >= 60 /*&& score < 70*/)? 'D': 'F')));

System.out.println("점수 : " + score);

System.out.println("등급 : " + grade);

}

//연습 : 국어, 영어, 수학 점수를 입력받아

// 총점과 평균을 계산하고

// 3과목의 점수가 모두 40점이상이고, 

//평균이 60점이상이면 "합격", 아니면 "불합격" 출력

public void 합격여부(){

Scanner 키보드 = new Scanner(System.in);

System.out.print("국어점수 : ");

int 국어 = 키보드.nextInt();

System.out.print("영어점수 : ");

int 영어 = 키보드.nextInt();

System.out.print("수학점수 : ");

int 수학 = 키보드.nextInt();

int 평균 = (국어 + 영어 + 수학) / 3;

String result = (국어 >= 40 && 영어 >= 40 && 

수학 >= 40 && 평균 >= 60)?

"합격": "불합격";

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

}

//연습 : 키보드로 주민등록번호를 입력받아,

//8번째자리 문자를 추출해서

//'1' 또는 '3' 이면 "남자", 

//'2' 또는 '4' 이면 "여자",

//'5'이면 "해외교포" 로 출력

//주민등록번호 : 771225-1234567

//당신은 남자입니다.

public void printInfo(){

System.out.print("주민등록번호 : ");

String personID = new Scanner(System.in).next();

char info = personID.charAt(7);

String result = 

(info == '1' || info == '3')? "남자":

(info == '2' || info == '4')? "여자":

"해외교포";

System.out.println("당신은 " + result + "입니다.");

}

}



728x90