본문 바로가기

Java 기본 개념

자바를 잡아라 제 3장 - 느릴 순 있어도 놓치는 말자

728x90

[2022년 9월 22일 목요일]

 

 

 

표준 입/출력 ( IO: Input/Output )
: 가는 게 있으면 오는 게 있는 법

 

 

  • Input

1. 파일의 데이터를 읽는다 (loading)
2. 키보드의 입력데이터를 읽는다
3. 네트워크상의 데이터를 읽는다

 

  • Output

1. 파일에 데이터를 쓴다(save)
2. 모니터에 데이터를 쓴다(모니터에 데이터를 출력)
3. 네트워크상에 데이터를 쓴다(파일 전송)


자바에서 데이터를 출력하는 명령은 System.out
데이터를 입력받을 때는 System.in : 표준 JAVA API인 Scanner클래스를 사용

 


< Scanner API 사용법 >

1. 스캐너 객체 생성
ex) Scanner scan = new Scanner(System.in);

2. 입력 받을 데이터 타입에 따른 메서드 호출
ex) scan.next(), scan.nextLine(), scan.nextInt(), scan.nextDouble()

 

    next(): 공백을 포함하지 않는 문자열을 입력 받을 때
    nextLine(): 공백을 포함한 문자열을 입력 받을 때
    nextInt(): 정수를 입력 받을 때
    nextDouble(): 실수를 입력 받을 때

 

 


3. 스캐너 객체 종료
ex) scan.close();

 

import java.util.Scanner;

public class ScannerEx {
	
	public static void main(String[] args) {
	
		//1. 스캐너 생성
		Scanner scan = new Scanner(System.in);
		
		System.out.print("이름>");
		String name = scan.next(); //문자열을 입력받고 name변수에 저장
		
		System.out.print("나이>");
		int age = scan.nextInt();
		
		
		System.out.println("입력된 이름:" + name);
		System.out.println("입력된 나이:" + age);
		
		scan.close(); // 스캐너 끝!(단, 닫으면 이후에 scanner 사용 못 함)
		
	}
	
	
	
}

 

 

배열(Array)
: 순서를 지키시죠^^

 

 

  • 배열의 구조


       배열 선언 : < 데이터 타입 > < 배열 이름 [ ] > or < 데이터 타입 [ ] >< 배열 이름 >
         e.g ) int [ ] arr;

      배열 생성 : < 배열 이름 > = new < 데이터 타입 [배열의 크기] >
        e.g ) arr = new int[5];

 



      ★ 자바의 배열은 선언시에는 크기를 명시할 수 없으며, 생성시에 크기를 명시

     ★ 하나의 배열에 여러가지 데이터형을 혼합해서 사용 X = > 동종모음(Homogeneous collection)

    ★ 배열의 길이란 "배열에 저장할 수 있는 전체 항목 수"
        코드에서 배열의 길이를 얻으려면 '배열변수이름.length'라는 코드를 사용

 

import java.util.Arrays;

public class ArrayEx {
	
	public static void main(String[] args) {
		
		//배열은 선언, 생성, 초기화 과정을 거침
		//1. 배열의 선언
		int[] arr;
		
		//2. 배열의 생성
		arr = new int[5];
		
		//System.out.println(arr); // 주소값: 배열이 만들어진 위치
		
		//3. 배열의 초기화
		arr[0] = 10;
		arr[1] = 20;
		arr[2] = 30;
		arr[3] = 40;
		arr[4] = 50;
//		arr[5] = 60;//error
		
		//4. 배열의 사용
		System.out.println("arr첫번째 상자:" +arr[0]);
		System.out.println("arr세번째 상자:" +arr[2]);
		
		//5. 배열의 모습을 문자열로 확인하는 명령문
		System.out.println( Arrays.toString(arr) );
		
		//6. 배열의 길이를 확인하는 명령어 .length
		System.out.println("배열의 크기:" + arr.length); //암기하시오 :)
		
		//7. 배열의 선언과 생성을 동시에 (크기가 큰 경우)
		byte[] arr2 = new byte[10];
		
		
		//8. 배열의 선언 생성 초기화를 동시에 (크기가 작은 경우)
		int[] arr3 = {1, 2, 3, 4, 5, 6, 7, 8};
		
		
		System.out.println(Arrays.toString(arr3));
		
		//배열의 초기값을 지정하지 않으면 각 타입의 기본값으로 자동초기화
		//0, 0.0, null
		System.out.println(Arrays.toString(arr2));
		
		
		
		System.out.println("-----------------------------------------------------------------");
		
		
		/*
		 * 1. 스트링 배열을 생성하고 월, 화, 수, 목, 을 저장
		 * 
		 * 2. 크기가 3인 int 배열을 생성하고 1~10 중 랜덤값을 저장
		 * 
		 */
		
		
		String[] arr4= {"월", "화", "수", "목"}; 
		
		System.out.println( Arrays.toString(arr4));
		
		
		
		int[] arr5  = new int[3];
		
		/*arr5[0] = (int)(Math.random()*10) +1;
		arr5[1] = (int)(Math.random()*10) +1;
		arr5[2] = (int)(Math.random()*10) +1;
		*/
		
		
		System.out.println(Arrays.toString(arr5));
		
		
	}
	
}

 

 

제어문 ( 조건문, 반복문, 탈출문 )
: 제한 구역에 오신 걸 환영합니다

 

조건문특정 조건을 만족할 때 실행할 문장을 작성하는데 사용

반복문여러 번 반복 실행할 코드가 있다면 반복문을 작성

반복문이 실행되는 동안 실행을 중지시키고 싶으면 탈출문을 사용

 

 

  • 조건문 if ~ else

1) if문의 조건식 결과는 반드시 boolean형
2) 조건식이 이면 if문 블록 안의 실행문이 실행
3) 거짓이면 else문 블록안의 실행문이 실행

** 조건식의 결과가 거짓일 때 실행할 문장이 없다면, else문 이하를 생략

 

public class IfEx {

	public static void main(String[] args) {
		
		//0~100까지 랜덤값
		int point = (int)(Math.random() * 101);
		
		System.out.println("점수:" + point);
		
		//점수 60이상
		if( point >= 60 ) {
			System.out.println("60점이상입니다.");
			System.out.println("합격입니다.");
		 }
		else {
			System.out.println("60점 미만입니다.");
			System.out.println("불합격입니다.");
		
		}
		
	}
}

 

 

 

  • 다중 분기 조건문 if ~ else if ~ else

 

import java.util.Scanner;

public class IfEx02 {
	
	public static void main(String[] args) {
		
		//입력받은 점수에 따라서 A, B, C, D, F로 출력
		Scanner scan = new Scanner(System.in);
		
		
		System.out.print("점수>");
		int point = scan.nextInt();
		
		String grade = null;
		
		if( point >= 90 ) {
			//추가적인 조건 검사
			if(point >=95) {
				grade = "A+";
			}else {
				grade = "A";
			}
		}else if( point >= 80 ){
			grade = "B";
		}else if( point >= 70) {
			grade = "C";
		}else if( point >= 60 ) {
			grade = "D";
		}else { // 생략 가능
			grade = "F";
		}
		
		System.out.println(grade);//변수를 활용한 결과값 도출
	} 
	
}