본문 바로가기

Java/Java 2

[Java 실습] 3. 자바 기본문법2

반응형

Q1. 조건문

import java.util.Scanner;

    public class Conditional {
        void login() {
            Scanner scan = new Scanner(System.in);

            System.out.print("## 아이디를 입력하세요: ");		
            String uname = scan.next();

            System.out.print("# 비밀번호를 입력하세요: ");
            String pwd = scan.next();

            if(uname.equals("hong") && pwd.equals("1234")) {
            System.out.println("인증 확인!! -> 로그인 성공");
            }
            else {
            System.out.println("아이디나 비밀번호가 틀렸습니다.!!");
            }
        }

    void check() {
        int cnt = 10;
        String msg = cnt > 0? "새로운 쪽지가 있습니다.!!" : "새로운 쪽지가 없습니다.!!";
        System.out.println(msg);
    }

    public static void main(String[] args) {
        Conditional con = new Conditional();

        while(true) {
            System.out.printf("# 메뉴를 선택하세요 (1:로그인, 2:쪽지확인, x:종료) ==> ");
            Scanner scan = new Scanner(System.in);
            String sel = scan.next();

            switch(sel) {
            case "1": con.login();break;
            case "2": con.check();break;
            case "x": System.exit(0);
            default : System.out.println("잘못된 입력 입니다.!!");
            }	
        }
    }
}
  • 로그인 메뉴는 아이디와 비밀번호를 입력받고 if 문을 이용해 주어진 값과 맞는지 확인
  • 쪽지확인의 경우 cnt 변수값에 따라 3항연산을 이용해 출력할 메시지를 결정.
  • x 는 프로그램 종료, 이외 값 입력시 잘못된 입력 출력됨.

3항 연산

조건 ? true인 경우 수행 : false인 경우 수행;

String result = (login) ? "로그인 성공 " : "로그인 실패";

 

표준 입출력

키보드의 표준 입출력 장치 : System.in, System.out

 

java.util.Scanner

Scanner 클래스로 입력 스트림으로부터 데이터를 읽어오기 위한 유틸리티 클래스

 

Scanner scan = new Scanner (System.in);

String name = scan.next();

int num = scan.nextInt();

 

 Scanner scan = new Scanner(System.in);
 String sel = scan.next();

 


Q2. 반복문

public class Loop {
    public static void main(String[] args) {
        int power = 13;
        String members[] = {"홍길동","김길동","김사랑","아무개"};

        // 0 ~ 9 까지 즉 10회 반복
        for(int i=0;i<10;i++) {
            System.out.println(i);
        }

        // 배열의 인덱스를 이용해 데이터 출력
        for(int i=0;i<10;i++) {
            System.out.println(members[i]);
        }

        // 배열 데이터 크기만큼 반복하면서 String 타입 데이터를 가지고 옴.
        for(String name : members) {
            System.out.println(name);
        }

        // power > 10 보다 큰 경우에는 go() 함수를 호출해 동작시키고 power를 1감소
        while(power > 10) {
            System.out.println("go");
            power--;
        }
        System.out.println("stop");
    }
}
  • for문에 의해 0~9 까지의 값이 출력.
  • 문자열 배열값을 for-each 형태로 출력.
  • while 조건값 변경으로 3번 출력후 종료.

 

 // 배열 데이터 크기만큼 반복하면서 String 타입 데이터를 가지고 옴.
        for(String name : members) {
            System.out.println(name);
        }


Q3. 배열

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Array {

    public static void main(String[] args) {
        // 1. Declare and initialize an array
        System.out.println("# 1. Declare and initialize an array");
        int[] scores = { 95, 100, 87, 91 };
        scores[2] = 90; // 3번째 요소(87)을 90으로 변경.

        System.out.println(scores);
        for (int i = 0; i < scores.length; i++) {
            System.out.println(scores[i]);
        }

        // 2. Arrays method: toString(), asList()
        System.out.println("\n# 2. Arrays method: toString(), asList()");
        String[] cars = { "hyundai", "bmw", "benz", "toyota" };
        List<String> car_list = Arrays.asList(cars);
        System.out.println(car_list);
        System.out.println(car_list.get(1));
        // car_list.add("ford"); error

        // 3. Arrays method: sort(array, Comparator), sort(array, int fromindex, int toindex)​
        System.out.println("\n# 3. Arrays method: sort(array, Comparator), sort(array, int fromindex, int toindex)");
        Arrays.sort(cars);
        System.out.println(Arrays.asList(cars));

        Arrays.sort(cars, Collections.reverseOrder());
        System.out.println(Arrays.asList(cars));

        Arrays.sort(cars, 0, 2);
        System.out.println(Arrays.asList(cars));

        // 4. Arrays method: copyOf, copyOfRange
        System.out.println("\n# 4. Arrays method: copyOf, copyOfRange");
        String[] cars_copied1 = Arrays.copyOf(cars, cars.length);
        System.out.println(Arrays.asList(cars_copied1));

        String[] cars_copied2 = Arrays.copyOfRange(cars, 0, 2);
        System.out.println(Arrays.asList(cars_copied2));

        // 5. Multiple Array
        System.out.println("\n# 5. Multiple Array");
        int[][][] allScores = {
                { { 90, 85, 70, 55, 60 }, { 96, 88, 81, 91, 75 }, { 96, 88, 81, 91, 75 }, { 96, 88, 81, 91, 75 } },
                { { 91, 82, 73, 54, 65 }, { 96, 87, 88, 99, 80 }, { 91, 82, 83, 94, 75 }, { 96, 87, 88, 99, 70 } },
                { { 92, 83, 74, 55, 66 }, { 97, 88, 89, 90, 71 }, { 92, 83, 84, 95, 76 }, { 97, 88, 89, 90, 71 } } };
        System.out.println(allScores[1][2][0]);
    }
}

배열 메서드

toString(), asList()

String[] cars= {"hyundai", "bmw", "benz", "toyota"};
List<String> car_list=Arrays.asList(cars);
System.out.println(car_list);
//[hyundai, bmw, benz, toyota]

System.out.println(car_list.get(1));
//bmw

copyOf, copyOfRange

Arrays.sort(cars);
System.out.println(Arrays.asList(cars));
//[benz, bmw, hyundai, toyota]

Arrays.sort(cars, Collections.reverseOrder());
System.out.println(Arrays.asList(cars));
//[toyota, hyundai, bmw, benz]

Arrays.sort(cars, 0, 2);
System.out.println(Arrays.asList(cars));
//[hyundai, toyota, bmw, benz]

 


Q4. 키보드 입력과 로깅

import java.util.Scanner;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ScannerLog {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String name = scan.next();
        int num = scan.nextInt();

        System.out.println(name);
        System.out.println(num);

        Logger logger = Logger.getLogger("MyLogger");
        logger.info("Main program started !!");
        logger.log(Level.WARNING, "Data file size too big");

        logger.setLevel(Level.FINE);
        ConsoleHandler ch = new ConsoleHandler();
        ch.setLevel(Level.FINE);
        logger.addHandler(ch);

        logger.fine("Shutdown main program !!");
    }
}

Logger logger = Logger.getLogger("MyLogger");
logger.info("Main program started !!");                      //실행기록, 입력값 확인
logger.log(Level.WARNING, "Data file size too big");     //잠재적 문제 발생시 사용

logger.setLevel(Level.FINE);
ConsoleHandler ch = new ConsoleHandler();
ch.setLevel(Level.FINE);
logger.addHandler(ch);

logger.fine("Shutdown main program !!");                   //프로그램 분석을 위한 정보 출력

반응형

'Java > Java 2' 카테고리의 다른 글

[Java 실습] 4. 객체지향 개념과 자바  (0) 2021.07.15
[Java] 4. 객체지향 개념과 자바  (0) 2021.07.15
[Java] 3. 자바 기본문법 2  (0) 2021.07.15
[Java 실습] 2. 자바 기본문법  (0) 2021.07.15
[Java] 2. 자바 기본문법  (0) 2021.07.15