2021. 03. 24(수) TIL
Java
Scanner
- 입력장치로부터 입력한 내용을 읽어오는 기능을 가진 객체이다.
- 주요 메소드
int nextInt() : 입력한 갑을 읽어서 정수로 반환한다.
long nextLong() : 입력한 값을 읽어서 정수로 반환한다.
double nextDouble() : 입력한 값을 읽어서 실수로 반환한다.
boolena nextBoolean() : 입력한 값을 읽어서 불린값으로 반환한다.
String next() : 입력한 값을 읽어와서 문자열(String)로 반환한다.
String nextLine() : 입력한 값을 읽어서 문자열(String)로 반환한다.
✔ 위에서 나열한 모든 메소드는 입력장치를 통해서 입력이 완료될 때 실행된다.(입력이 완료될때까지 대기한다.)
기본 예시
import java.util.Scanner;
public class Example1 {
public static void main(String[] args) {
// System.in은 표준입력장치다.
// 시스템에서 표준입력장치는 키보드를 말한다.
// Scanner sc는 Scanner 설계도로 만든 객체의 주소값을 담는 변수 sc를 생성한다.
// new Scanner(System.in)은 표준입력장치로 입력하는 내요을 읽어오는 Scanner객체를 생성한다.
// Scanner sc = new Scanner(System.in)은
// 표준입력장치로 입력한 내용을 읽어오는 Scanner 객체를 생성한 후,
// 그 객체의 주소값을 sc에 대입하라
// sc는 생성된 객체의 공개된 속성과 기능을 사용할 떄 필요한 리모콘 역할을 수행한다
// sc를 통해서만 생성된 객체에 접근 / 사용할 수 있다.
// sc.nextInt(); sc.next(); sc.nextDouble(); sc.nextLine() 등의 수행문으로
// 입력된 값을 읽어올 수 있다.
Scanner sc = new Scanner(System.in);
System.out.printf("이름을 입력하세요 : ");
String value = sc.nextLine();
System.out.printf("나이를 입력하세요 : ");
String value2 = sc.nextLine();
System.out.println("입력된 이름 : " + value);
System.out.println("입력된 나이 : " + value2);
}
}
조건문(분기문)
If문
- if문은 제어문을 작성할 때 사용한다.
- if문을 사용하면 특정한 수행문을 실행되게 하거나 실행되지 않게 할 수 있다.
- if문에는 수행문의 실행여부를 결정지을 조건식이 필요하다
- if문의 조건식은 수행결과가 boolean값인 연산식이어야 한다.
If ~ else 문
- 제시된 조건을 만족하는 경우와 만족하지 않는 경우 각각 실행할 수행문이 존재하는 경우 사용한다.
기본예시
System.out.println("프로그램을 시작합니다.");
// 성적이 60점 이상이면 "합격입니다"를 출력한다.
// 그 외의 경우는 "불합격입니다"를 출력한다.
int score = 58;
/*
* 조건연산자로 표현하기
* String message = score >= 60 ? "합격입니다" : "불합격입니다";
* System.out.println(message);
*/
if (score >= 60) {
System.out.println("합격입니다.");
} else {
System.out.println("불합격입니다.");
}
System.out.println("프로그램을 종료합니다.");
if ~ else if ~ else if ~ else 문
- 수행문의 실행여부를 결정하는 조건이 여러 개이 경우 사용한다.
- 제시된 조건식 중에서 true로 판정된 경우가 존재하면 해당 블록의 수행문이 실행되고, 나머지 조건식은 검사하지 않는다.
- 제시된 조건식 전부 true로 판정되는 경우가 존재하지 않을 때만 else 블록의 수행문이 실행된다
- else 블록은 생략할 수 있다.
- else 블록은 여러 개 작성할 수 없다.
/*
* 91점 이상이면 "A", 81점 이상이면 "B", 71점 이상이면 "C",
* 61점 이상이면 "D", 60점 이하는 "F"를 출력한다.
*/
int score = 81;
String grade;
// if ~ else if ~ else if ~ else 문을 사용하면
// 다양한 조건을 제시해야하는 조건문을 작성할 수 있다.
if (score >= 91 ) {
grade = "A";
} else if(score >= 81) {
grade = "B";
} else if(score >= 71) {
grade = "C";
} else if(score >= 61) {
grade = "D";
} else {
grade = "F";
}
System.out.println("학점 : " + grade);
내포된 if문
- if문은 다른 if문을 포함할 수 있다.
- if, else if, else 모두 다른 if문을 포함할 수 있다.
import java.util.Scanner;
public class IfDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
/*
* 내포된 if문 사용하기
* 고객명, 고객등급(1, 2, 3 중 하나), 총구매금액을 입력받는다.
* 고객등급이 1등급인 경우, 총구매금액의 3%를 적립포인트로 지급한다.
* 단, 총구매금액이 100만원을 초과하는 경우,
* 100만원을 제외한 나머지 금액에 대해서는 5%를 적립한다.
* 그 외는 총구매금액에 관계없이 총구매금액의 1%를 적립포인트로 지급한다.
*
* 고객명, 고객등급, 총구매금액, 적립포인트를 출력한다.
*/
System.out.printf("고객명 : ");
String customerName = sc.next();
System.out.printf("고객등급 : ");
int customerGrade = sc.nextInt();
System.out.printf("총구매금액 : ");
int totalPrice = sc.nextInt();
int point = 0;
if(customerGrade == 1) {
if(totalPrice > 1_000_000) {
// 1등급이고, 구매금액이 100만원 초과인 경우
// 100만원까지는 3%, 그 이후 금액은 5% 적립
point = (int) ((1_000_000 * 0.03) + (totalPrice - 1_000_000) * 0.05);
} else {
// 1등급이고, 구매금액이 100만원 이하인 경우
// 3% 적립
point = (int) (totalPrice * 0.03);
}
} else {
// 1등급이 아닌 경우
// 1% 적립
point = (int) (totalPrice * 0.01);
}
System.out.println("===============================");
System.out.println("고객명 : " + customerName);
System.out.println("고객등급 : " + customerGrade);
System.out.println("총구매금액 : " + totalPrice);
System.out.println("적립포인트 : " + point);
System.out.println("===============================");
}
}
✔ 변수의 스코프(Scope: 범위)
- Java에서 변수의 스코프는 그 변수가 선언된 블록이다.
- 변수는 그 변수가 선언된 블록내에서만 사용할 수 있다.
- 블록을 닫는 괄호를 만나면, 변수는 즉시 사라진다.
반복문
- 반복문은 특정한 수행문을 반복해서 실행하는 구문이다.
- 반복문은 제시된 조건이 true인 경우 블록내의 수행문을 반복 실행한다.
- for, while, do ~ while 구문을 사용한다.
- 반복횟수를 알고 있을 때는 for문, 그렇지 않은 경우는 while문을 사용한다.
for문
- for문은 초기화식, 조건식, 증감식, 코드블록 으로 구성되어 있다.
- 초기화식, 조건식, 증감식 모두 생략가능하다.
- 초기화식에서 선언한 변수는 조건식, 증감식 및 for문의 블록내에서만 사용가능하다.
- for문의 실행순서
기본예제
// 수행문을 10개 실행하기
for (int i = 0; i < 10; i ++) {
System.out.println("안녕하세요");
}
System.out.println("----------------------------------");
for (int i=10; i > 0; i--) {
System.out.println("안녕하세요");
}
System.out.println("-----------------------------------");
// 1 ~ 10 까지 출력하기
for (int i=1; i<=10; i++) {
System.out.println(i);
}
System.out.println("-----------------------------------");
// 구구단 출력하기
int dan = 2;
for (int i = 1; i <= 9; i++) {
System.out.println(dan + " x " + i + " = " + (dan*i));
}
System.out.println("-----------------------------------");
// 합계 구하기
// 1 ~ 100까지 합계를 구하고 출력한다.
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i; // sum = sum + i 랑 같다.
}
System.out.println("합계 : " + sum);
ETC
첫 대면수업을 했다. 이 시국때문에 반 인원을 3등분해 나눠서 대면수업으로 진행하는데
역시 대면수업을 해야 마음이 편하다 하루 빨리 코로나 단계가 낮아졌으면.. 😒
Author And Source
이 문제에 관하여(2021. 03. 24(수) TIL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@eastgun_/2021.-03.-24수-TIL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)