- 사용할 클래스를 미리 써놓고 ctrl + shift + m 하면 자동으로 클래스 임포트
- 자동 정렬: ctrl + shift + f
- 두 수의 합 키보드로 입력받아 화면에 출력하는 프로그램
// 내 풀이
package calendar;
import java.util.Scanner;
public class Sum {
public static void main(String[] args) {
System.out.println("두 수를 입력하세요: ");
Scanner input = new Scanner(System.in);
String nums = input.nextLine();
String[] num = nums.split(" ");
int num1 = Integer.parseInt(num[0]);
int num2 = Integer.parseInt(num[1]);
System.out.println("두 수의 합은 " + (num1 + num2) + "입니다.");
}
}
// 해설
package calendar;
import java.util.Scanner;
public class Sum {
public static void main(String[] args) {
int a, b;
Scanner scanner = new Scanner(System.in);
String s1, s2;
System.out.println("두 수를 입력하세요: ");
s1 = scanner.next();
s2 = scanner.next();
a = Integer.parseInt(s1);
b = Integer.parseInt(s2);
System.out.printf("두 수의 합은 %d입니다.", a + b);
scanner.close();
}
}
- 미리 변수 선언, 그리고 스캐너 닫기
- 숫자를 키보드로 입력받아 해당 월의 마지막날 출력
// 내 풀이
package calendar;
import java.util.Scanner;
public class Calendar {
public static void main(String[] args) {
int[] days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int month;
String num;
Scanner scanner = new Scanner(System.in);
System.out.println("수를 입력하세요: ");
num = scanner.nextLine();
month = Integer.parseInt(num);
System.out.printf("해당 월은 %d일로 구성됩니다.", days[month - 1]);
scanner.close();
}
}
// 해설
package calendar;
import java.util.Scanner;
public class Calendar {
public static void main(String[] args) {
int[] days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
Scanner scanner = new Scanner(System.in);
System.out.println("수를 입력하세요: ");
int month = scanner.nextInt();
System.out.printf("해당 월은 %d일로 구성됩니다.", days[month - 1]);
scanner.close();
}
}
- println은 자동 줄바꿈, printf는 없음
package calendar;
import java.util.Scanner;
public class Calendar {
private static final int[] Last_Day = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
public int getLastDayOfMonth(int month) {
return Last_Day[month - 1];
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Calendar cal = new Calendar();
System.out.println("수를 입력하세요: ");
int month = scanner.nextInt();
System.out.printf("해당 월은 %d일로 구성됩니다.", cal.getLastDayOfMonth(month));
scanner.close();
}
}
- 메소드와 변수 사용
- 입력받은 n에 대해 1월부터 n월까지 며칠로 구성돼있는지 출력
package calendar;
import java.util.Scanner;
public class Calendar {
private static final int[] Last_Day = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
public int getLastDayOfMonth(int month) {
return Last_Day[month - 1];
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Calendar cal = new Calendar();
System.out.println("반복횟수를 입력하세요: ");
int repeat = scanner.nextInt();
for (int i = 0; i < repeat; i++) {
System.out.println("수를 입력하세요: ");
int month = scanner.nextInt();
System.out.printf("해당 월은 %d일로 구성됩니다.\n", cal.getLastDayOfMonth(month));
}
System.out.println("Complete");
scanner.close();
}
}
- 종료 조건 이용해 반복
package calendar;
import java.util.Scanner;
public class Calendar {
private static final int[] Last_Day = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
public int getLastDayOfMonth(int month) {
return Last_Day[month - 1];
}
public static void main(String[] args) {
String PROMPT = "cal> ";
Scanner scanner = new Scanner(System.in);
Calendar cal = new Calendar();
while (true) {
System.out.println("수를 입력하세요: ");
System.out.print(PROMPT);
int month = scanner.nextInt();
if (month < 1) {
break;
} else if (month > 12) {
continue;
}
System.out.printf("해당 월은 %d일로 구성됩니다.\n", cal.getLastDayOfMonth(month));
}
System.out.println("Complete");
scanner.close();
}
}
- 가상 달력 출력
- 캘린더 클래스에는 캘린더 관련 내용만 포함하기 위해 프롬프트 클래스 새로 생성
// Calendar class
package calendar;
public class Calendar {
private static final int[] Last_Day = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
public int getLastDayOfMonth(int month) {
return Last_Day[month - 1];
}
public void printCalendar(int month) {
System.out.println(" SU MO TU WE TH FR SA\r\n" + "---------------------");
for (int i = 1; i <= month; i++) {
System.out.printf("%3d", i);
if (i % 7 == 0) {
System.out.println();
}
}
System.out.println();
}
}
// Prompt class (새로 생성)
package calendar;
import java.util.Scanner;
public class Prompt {
private final static String PROMPT = "cal> ";
public void runPrompt() {
Scanner scanner = new Scanner(System.in);
Calendar cal = new Calendar();
while (true) {
System.out.println("수를 입력하세요: ");
System.out.print(PROMPT);
int month = scanner.nextInt();
if (month == -1) {
break;
} else if (month > 12) {
continue;
}
int lastday = cal.getLastDayOfMonth(month);
cal.printCalendar(lastday);
}
System.out.println("Complete");
scanner.close();
}
public static void main(String[] args) {
Prompt p = new Prompt();
p.runPrompt();
}
}
- %3d : 3칸의 정수형
- 윤년 반영하기
// Calendar class
package calendar;
public class Calendar {
private static final int[] Last_Day = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
private static final int[] Leap_Last_Day = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
public boolean isLeapYear(int year) {
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
return true;
} else {
return false;
}
}
public int getLastDayOfMonth(int year, int month) {
if (isLeapYear(year)) {
return Leap_Last_Day[month - 1];
} else {
return Last_Day[month - 1];
}
}
public void printCalendar(int month) {
System.out.println(" SU MO TU WE TH FR SA\r\n" + "---------------------");
for (int i = 1; i <= month; i++) {
System.out.printf("%3d", i);
if (i % 7 == 0) {
System.out.println();
}
}
System.out.println();
}
}
// Prompt Class
package calendar;
import java.util.Scanner;
public class Prompt {
private final static String PROMPT = "cal> ";
public void runPrompt() {
Scanner scanner = new Scanner(System.in);
Calendar cal = new Calendar();
while (true) {
System.out.println("연도를 입력하세요: ");
System.out.print("YEAR> ");
int year = scanner.nextInt();
System.out.println("월을 입력하세요: ");
System.out.print("MONTH> ");
int month = scanner.nextInt();
if (month == -1) {
break;
} else if (month > 12) {
continue;
}
int lastday = cal.getLastDayOfMonth(year, month);
cal.printCalendar(lastday);
}
System.out.println("Complete");
scanner.close();
}
public static void main(String[] args) {
Prompt p = new Prompt();
p.runPrompt();
}
}
- 조건문 활용해 윤년인지 확인하여 캘린더 출력
- 함수나 변수에 커서 놓고 f3 누르면 해당 객체 선언하는 코드로 이동
/** 치고 엔터치면 다중 라인 주석 (함수 위에서 하면 함수 관련 주석)
int a = (b == 1) ? true : false;
변수 a는 b가 1이라면 true 그 외에는 false
출처: https://www.inflearn.com/course/java-codesquad/dashboard
'course > inflearn' 카테고리의 다른 글
[HTTP 웹 기본 지식] (0) | 2022.07.29 |
---|---|
[스프링 입문] (0) | 2022.07.29 |
[만들어 가면서 배우는 JAVA 플레이그라운드] 구구단 과제 (0) | 2022.07.15 |
[만들어 가면서 배우는 JAVA 플레이그라운드] 구구단 (2) (0) | 2022.07.15 |
[만들어 가면서 배우는 JAVA 플레이그라운드] 구구단 (0) | 2022.07.15 |