[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);//변수를 활용한 결과값 도출
}
}
'Java 기본 개념' 카테고리의 다른 글
자바를 잡아라 제 6장 - 끝이 어딘지 모를 땐 현재에 집중해라 (2) | 2022.10.06 |
---|---|
자바를 잡아라 제 5장 - 반복만이 살 길이다 (0) | 2022.10.04 |
자바를 잡아라 제 4장 - 세상사 쉬운 건 없다 (0) | 2022.10.03 |
자바를 잡아라 제 2장 - 길고 짧은 것은 대봐야 알 수 있는 법 (0) | 2022.10.02 |
자바를 잡아라 제 1장 - 아무 것도 아닌 것은 없다 (0) | 2022.09.22 |