티스토리 뷰
import java.util.Scanner;
class CoditionalOperator
{
public static void main(String[] args)
{
int a = 14, b = 21, c = 43, d = 59;
int max;
int min;
max = ( a > b) ? a : b; // max = 21
max = ( max > c) ? max : c; // max = 43
max = ( max > d) ? max : d; // max = 59
System.out.println("max : " + max); // max = 59출력.
min = ( a < b ) ? a : b;
min = ( min < c ) ? min : c;
min = ( min < d) ? min : d;
System.out.println("min : " + min);
}
}
다항연산자 ( a > b ) ? a : b ; 라는 식에서 a > b가 참이라면 ?뒤에 있는 a를 출력하고, 거짓이라면 : 뒤에 있는 b를 출력하는 개념으로 작동한다.
class If_2
{
public static void main(String[] args) throws Exception
{
int a;
System.out.print("문자를 입력하세요 !!");
a = System.in.read();
if((a>='A') && (a<='Z'))
{
System.out.println(" " + (char)a + "는 대문자입니다.");
}else if((a>='a') && (a<='z'))
{
System.out.println(" " + (char)a + "는 소문자입니다.");
}else if((a>=48) && (a<='9'))
{
System.out.println(" " + (char)a + "는 숫자입니다.");
}else
{
System.out.println(" " + (char)a + "는 영문자, 숫자가 아닙니다.");
}
}
}
제어문을 공부하면서 첫 번째로 IF문을 알려주셨다. If - else if - else 로 이루어진 제어문이 코드를 조금 더 유연하고 효과적으로 짤 수 있게 도와준다.
import java.util.Scanner;
Class If_3{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a;
String hak ="";
System.out.println("점수를 입력하세요");
a = sc.nextInt();
if(a>90){
hak = "A";
System.out.println("당신의 학점은 " + hak);
if(a>97){
hak += "++";
System.out.println("당신의 학점은" + hak);
}
else if(a <93){
hak += "--";
System.out.println("당신의 학점은" + hak);
}
}
else if(a>80){
hak = "B";
System.out.println("당신의 학점은 " + hak);
}
else if(a>70){
hak = "C";
System.out.println("당신의 학점은 " + hak);
}
else if(a>60){
hak = "D";
System.out.println("당신의 학점은 " + hak);
}
else if(a>50){
hak = "B";
System.out.println("당신의 학점은 " + hak);
}
else{
hak = "F";
System.out.println("당신의 학점은 " + hak);
}
}
}
if문을 활용해서 사용자의 점수를 입력받아서 학점을 계산해주는 코드를 작성하였다. 여기서 살짝 키포인트는 중복 if문을 사용하여 a++, a, a-- 범위를 센스있게 나눌 수 있다는 점이다!!
이렇게 오늘의 중요한 key ponit는 if문을 활용한 제어문과, Scanner 이 두개이다!
오늘 배웠던 것 들을 활용하기 위해서 몇개의 예제 문제를 풀어보았다.
1) Scanner 클래스를 이용하여 원화를 이용받아 달러로 바꾸어 다음 예시와 같이 출력하는 프로그램을 작성해보자.
$1 = 1100으로 가정하고 계산해보자.
import java.util.Scanner;
public class Test_1 {
public static void main(String[] args) {
float dollor;
int won;
System.out.print("환전하고 싶은 원화를 입력하시오 : ");
Scanner scan = new Scanner(System.in);
won = scan.nextInt();
dollor = (float)won / 1100;
System.out.printf("%d원 환전 액수 = %f", won, dollor);
}
}
2) Scanner 클래스를 이용하여 2자리의 정수 ( 10 ~ 99 사이 ) 를 입력받고, 십의 자리와 1의 자리가 같은지 판별하여 출력하는 프로그램을 작성하자.
2자리 정수 입력 : 99
출력 : Wow! 10의 자리와 1의 자리가 같습니다 = 99
import java.util.Scanner;
Class Test_2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a;
System.out.println("10부터 99까지 수를 입력해주세요");
a = sc.nextInt();
if ( (a < 10) || (a > 99) ){
System.out.println("범위를 유의해주세요");
}
else if (a % 11 == 0){
System.out.println(a + "의 일의 자리와 십의 자리는 같습니다.");
}
else{
System.out.println("1의 자리와 10자리가 같지 않습니다.");
}
}
}
(3)Scanner 클래스를 이용하여 정수로 된 돈의 액수를 입력받아 5만원권, 1만원권, 5천원권, 1천원권, 500원, 100원, 50원, 1원 으로 각 몇개씩 변환 되는지를 출력하라.
바꾸고 싶은 액수를 입력하세요 : 55000
import java.util.Scanner;
Class Test_3{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int money, won, res;
System.out.println("바꾸실 돈을 입력해주세요");
won = sc.nextInt();
money = won; // won = 62000
res = won / 50000 ; // res = 1
money = won - (res * 50000); // money = 12000
System.out.println("5만원권은" + res + "장 입니다.");
res = won / 10000 ; // res = 1
money = won - (res * 10000); // money = 2000
System.out.println("1만원권은" + res + "장 입니다.");
res = won / 1000 ; // res = 2
money = won - (res * 1000); // money = 0
System.out.println("1천원권은" + res + "장 입니다.");
}
}
4) Scanner 클래스로 정수 3개를 입력받고 3개의 숫자 중 중간 크기의 수를 출력하자. 평균값을 구하는 것이 아니라 중간 값을 출력.
import java.util.Scanner;
Class Test_4{
public static void main(String[] args){
int = a, b, c, mid;
Scanner sc = new Scanner();
System.out.println("3개의 숫자를 입력해주세요");
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
if(((a < b) && (b < c)) || ((a < b) && (b > c) && (a < c)) || ((a > b) && (b < c) && (a < c))){
mid = a;
System.out.println("입력하신 3개의 정수중 중간값은" + a);
}
else if(((a < b) && (b < c)) || ((a > b) && (b >c))){
mid = b;
System.out.println("입력하신 3개의 정수중 중간값은" + b);
}else{
mid = c;
System.out.println("입력하신 3개의 정수중 중간값은" + c);
}
}
}
4번은 틀린답! 아직 이해가 안되서 조금만 더 고민해보고 수정하도록 하겠습니당.