2021. 03. 24(수) TIL

eastgun_·2021년 3월 24일
0

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등분해 나눠서 대면수업으로 진행하는데

역시 대면수업을 해야 마음이 편하다 하루 빨리 코로나 단계가 낮아졌으면.. 😒

profile
게으르고 싶은 예비 개발자입니다.

0개의 댓글