* 사용자로부터 입력 받는 방법 > System.in.read()
- system.in.read();는 직접 자판의 keycode 값을 처리해야 함
package day03;
import java.io.IOException;
public class StatementTest13 {
public static void main(String[] args) throws IOException {
System.out.println("입력 : ");
int value = System.in.read(); > 한 문자의 아스키 코드 값을 돌려줌
따라서,
value -= 48; > 필요함
* 표준 출력 장치로부터 문자열 입력 받아 출력 > Scanner
- 실제 정수/실수 등의 기본 타입으로도 입력받을 수 있음
- keycode 처리를 깔끔하게 함, 식에 System.in 포함
package day03;
import java.util.Scanner;
public class StatementTest16 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
* 조건 분기문 : 조건에 따라서 서로 다른 코드가 동작하도록
- if ~ else if
if(조건) {
조건 1이 참일 때 실행되는 코드
}else if(조건2)
조건 2가 참일 때 실행되는 코드
}else if(조건3)
조건 3이 참일 때 실행되는 코드
}else {
그 외의 경우라면 실행되는 코드
}
* print와 println의 차이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package day03;
public class StatementTest18 {
public static void main(String[] args) {
// print와 println의 차이
System.out.println("Hello World"); // 엔터기능이 들어있음
System.out.print("123");
System.out.print("456\n");
for(int i = 1; i<=9; i++) {
System.out.print(" 2 * " + i + " = " + 2*i + "\t");
}
}
}
|
cs |
[ 실습 ]
* 사용자로부터 입력 받은 값으로 구구단 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package day03;
import java.io.IOException;
public class StatementTest12 {
public static void main(String[] args) throws IOException {
// 사용자로부터 입력받은 단(구구단)을 출력
System.out.println("몇단?");
// 1. 사용자로부터 숫자를 입력받는다.
// 표준 입력장치로 값을 입력받아 가져오기
int dan = System.in.read(); // 한 문자의 아스키코드 값을 돌려줌
// 0의 ASCII : 48
dan -= 48; // = 1
System.out.println("입력값 : " + dan);
for (int i = 1; i<=9; i++) {
System.out.println(dan + " * " + i + " = " + dan*i);
}
}
}
|
cs |
* 사용자가 입력한 값으로 홀수인지 짝수인지 판별
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package day03;
import java.io.IOException;
public class StatementTest13 {
public static void main(String[] args) throws IOException {
// 사용자가 입력한 숫자가 홀수인지 짝수인지 판별
// 1. 사용자로부터 1자리 숫자를 입력받는다.
System.out.println("입력 : ");
int value = System.in.read();
// 2. 아스키코드값을 숫자로 변환
value -= 48;
// 3. 출력
System.out.println(value);
// 조건 분기문 : 조건에 따라서 서로 다른 코드가 동작하도록
// if(조건) {
// 조건 1이 참일 때 실행되는 코드
// }else if(조건2)
// 조건 2가 참일 때 실행되는 코드
// }else if(조건3)
// 조건 3이 참일 때 실행되는 코드
// }else {
// 그 외의 경우라면 실행되는 코드
// }
if(value%2 == 1) { // value를 2로 나눈 값이 1이면 실행
System.out.println(value + "는 홀수 입니다");
}
else { // value를 2로 나눈 값이 0이면 실행
System.out.println( value + "는 짝수 입니다");
}
}
}
|
cs |
* 사용자로부터 입력 받은 숫자가 3의 배수인지 아닌지 여부 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package day03;
import java.io.IOException;
public class StatementTest14 {
public static void main(String[] args) throws IOException {
// 사용자로부터 입력 받은 숫자(1자리)가 3의 배수인지
// 아닌지 여부를 출력
// ex)
// 숫자입력: 9
// 9는 3의 배수
// 숫자입력: 8
// 8은 3의 배수가 아닙니다.
System.out.println("숫자입력: ");
int v = System.in.read();
v -= 48;
if (v%3 == 0) {
System.out.println(v + "는 3의 배수");
} else {
System.out.println(v + "는 3의 배수가 아닙니다.");
}
}
}
|
cs |
* 성적 총점, 평균과 그에 따른 학점 > if ~ else if 문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package day03;
public class StatementTest15 {
public static void main(String[] args) {
// 국어 영어 수학 점수
int kor = 55;
int eng = 90;
int mat = 70;
// 총점 : tot, 평균 : avg
int tot = kor + eng + mat;
float avg = tot/3.0f;
// 총점 : XXX
// 평균 : XXX
System.out.println("총점 : " + tot);
System.out.println("평균 : " + avg);
// 평균 점수에 따른 학점 평가
// 90점 이상이면 A
// 80점 이상이면 B
// 70점 이상이면 C
// 60점 이상이면 D
// 그 외면 F
// A학점
// B학점
if (avg >= 90) {
System.out.println("A학점");
} else if (avg >= 80) {
System.out.println("B학점");
} else if (avg >= 70) {
System.out.println("C학점");
} else if (avg >= 60) {
System.out.println("D학점");
} else {
System.out.println("F학점");
}
}
}
|
cs |
* 사용자에게 성적 입력 받으면 학점 출력 > Scanner / if ~ else if 문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package day03;
import java.util.Scanner;
public class StatementTest16 {
public static void main(String[] args) {
// 표준 출력 장치로부터 문자열 입력 받아 출력
System.out.println("성적 입력 : ");
Scanner sc = new Scanner(System.in);
// 입력받은 문자열을 int형으로 가져와서 score 변수에 할당한다.
int score = sc.nextInt();
System.out.println("score : " + score);
// 당신의 점수는 XXX이며 학점은 A 입니다
String grade = "";
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else if (score >= 70) {
grade = "C";
} else if (score >= 60) {
grade = "D";
} else {
grade = "F";
}
System.out.println("당신의 점수는 " + score +
"이며 학점은 " + grade + "입니다");
}
}
|
cs |
* 사용자에게 성적 입력 받으면 학점 출력 > case 문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package day03;
// 백문이 불여일타
// IT < == 프로그램 공부는 책으로.. xxx
import java.util.Scanner;
public class StatementTest17 {
public static void main(String[] args) {
System.out.println("성적 입력 : ");
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
System.out.println("score : " + score);
String grade = "";
// switch (값) {
// case X :
// 문장1;
// 문장2;
// }
// case X2
// 문장1;
// 문장2;
// }
// 99, 98, 93 즉 10으로 나눈 몫 : 9
switch(score/10) {
case 10:
case 9:
System.out.println("A학점");
break;
case 8:
System.out.println("B학점");
break;
case 7:
System.out.println("C학점");
break;
case 6:
System.out.println("D학점");
break;
default :
System.out.println("F학점");
}
}
}
|
cs |
* 구구단 2단을 세 번 출력 > 이중 for문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package day03;
public class StatementTest19 {
public static void main(String[] args) {
// 이중 for문
// 구구단 2단 세 번 출력
for (int j = 1; j<=3; j++){
for(int i = 1; i<=9; i++) {
System.out.println(j + " : " +j+ " * " + i + " = " + j*i);
}
System.out.println("---------------------");
}
}
}
|
cs |
* 주사위 2개로 가능한 모든 경우의 수 표시 > 이중 for 문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package day03;
public class StatementTest20 {
public static void main(String[] args) {
// 주사위 2개의 눈금 표시
// 가능한 모든 경우의 수를 다 표시하고 싶다.
// 주사위 1개의 눈금 개수를 출력 (가능한 모든 수)
// 1번째 주사위 눈 수 : 1
// 1번째 주사위 눈 수 : 2
for(int j=1; j <=6; j++) {
for (int i = 1; i<= 6; i++) {
System.out.println("2번째 주사위 눈 수 : " + j + ", 1번째 주사위 눈 수 : " + i);
}
}
}
}
|
cs |
* 그 사람의 띠를 출력해주는 프로그램 작성 > Scanner / if ~ else if 문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package day03;
import java.util.Scanner;
public class StatementTest21 {
public static void main(String[] args) {
// 띠 : 12간지
// 그 사람의 띠를 출력해주는 프로그램 작성
// 자 축 인 묘 진 사 오 미 신 유 술 해
// 쥐|소|호|토|용|뱀|말|양|원|닭|개|돼
// 4 5 6 7 8 9 10 11 0 1 2 3
// 1. 태어난 년도 4자리를 입력하면
// Scanner 사용해서 태어난 년도 4자리를 입력받아서 콘솔에 출력
System.out.println("태어난 년도 4자리 입력하세요 : ");
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
System.out.println("입력한 년도 : " + year);
// 어떤 띠인지 판별을 위해 태어난 년도를 12로 나눈 나머지를 알아낸다.
year%=12;
System.out.println("나머지 : " + year);
// 이때 얻은 값을 가지고 띠를 판별한다.
if(year ==4) {
System.out.println("당신은 쥐띠");
} else if(year == 5) {
System.out.println("당신은 소띠");
} else if(year == 6) {
System.out.println("당신은 호랑이띠");
} else if(year == 7) {
System.out.println("당신은 토끼띠");
} else if(year == 8) {
System.out.println("당신은 용띠");
} else if(year == 9) {
System.out.println("당신은 뱀띠");
} else if(year == 10) {
System.out.println("당신은 말띠");
} else if(year == 11) {
System.out.println("당신은 양띠");
} else if(year == 0) {
System.out.println("당신은 원숭이띠");
} else if(year == 1) {
System.out.println("당신은 닭띠");
} else if(year == 2) {
System.out.println("당신은 개띠");
} else if(year == 3) {
System.out.println("당신은 돼지띠");
}
}
}
|
cs |
* 정수, 문자 변수 출력 > printf, println
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package day03;
public class StatementTest22 {
public static void main(String[] args) {
// 3월 6일 출력
System.out.println("3월 6일");
int year = 2023;
int month = 3;
int day = 6;
// 오늘은 2023년 3월 6일 입니다. 출력
System.out.println("오늘은 " + year + "년 " + month + "월 " + day + "일 입니다.");
System.out.printf("오늘은 %d년 %d월 %d일 입니다.\n", year, month, day); //c언어 스타일
// 첫번째 : 출력 형식
// 두번째 값을 할당
// %d : 정수, %b : 논리, %c : 문자, %f : 실수, %s : 문자열을 의미
// hour, minute, second
// 현재 시간은 2시 40분 50초 입니다.
int hour = 2;
int minute = 40;
int second = 50;
// 자바 스타일
System.out.println("현재 시간은 " + hour + "시 " + minute + "분 " + second + "초 입니다.");
// C 스타일
System.out.printf("현재 시간은 %d시 %d분 %d초 입니다.\n", hour, minute, second);
String nation = "한국";
System.out.println(nation + " 현재 시간은 " + hour + "시 " + minute + "분 " + second + "초 입니다.");
System.out.printf("%s 현재 시간은 %d시 %d분 %d초 입니다.\n", nation, hour, minute, second);
// 변수명 : name age height weight
// 내 이름은 홍길동 이고 나이는 20살 키는 182.3 몸무게는 75.3 입니다.
String name = "홍길동";
int age = 20;
float height = 182.3f;
float weight = 75.3f;
System.out.println("내 이름은 " + name + " 이고 나이는 " + age + "살 키는 " + height + " 몸무게는 " + weight + "입니다.");
System.out.printf("내 이름은 %s 이고 나이는 %d살이고 키는 %f 몸무게는 %f 입니다.\n", name, age, height, weight);
}
}
|
cs |
[ 응용 ]
* 사용자의 입력값을 받아 해당 단의 짝수 결과만 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package day03;
import java.util.Scanner;
public class quiz2번 {
public static void main(String[] args) {
System.out.println("몇 단?");
Scanner sc = new Scanner(System.in);
int value = sc.nextInt();
for (int i = 1; i<=9; i++) {
if ((value*i)%2 == 0) {
System.out.println(value + " * " + i + " = " + value*i);
}
}
}
}
|
cs |
* 증가했다가 감소하는 별 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package day03;
public class quiz3번 {
public static void main(String[] args) {
for (int j = 1; j <= 5; j++) {
for(int i = 1; i <= j; i++) {
System.out.printf("*");
}
System.out.println();
}
for (int j = 4; j >= 1; j--) {
for(int i = 1; i <= j; i++) {
System.out.printf("*");
}
System.out.println();
}
}
}
|
cs |
* 사용자로부터 입력받은 값이 3의 배수인지 아닌지 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package day03;
import java.util.Scanner;
public class quiz4번 {
public static void main(String[] args) {
System.out.println("입력 : ");
Scanner sc = new Scanner(System.in);
int value = sc.nextInt();
if (value%3 == 0) {
System.out.println(value + "는 3의 배수입니다.");
} else {
System.out.println(value + "는 3의 배수가 아닙니다.");
}
}
}
|
cs |
* 1부터 100사이의 정수 중 2 또는 3의 배수가 아닌 수의 합계
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package day03quiz;
public class Day03Q05 {
public static void main(String[] args) {
// 1. 1부터 100 사이의 정수를 출력
for (int i = 1; i<=100; i++) {
// 2. 모두 출력하는 것이 아니라 특정 조건이 되면 출력
if (i%2 != 0 && i%3 != 0) {
System.out.println(i);
}
}
}
}
|
cs |
* 두 개의 주사위를 던졌을 때, 합이 4가 되는 모든 경우의 수를 출력하는 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package day03;
public class quiz6번 {
public static void main(String[] args) {
for(int j=1; j <=6; j++) {
for (int i = 1; i<= 6; i++) {
if (i+j == 4) {
System.out.println(i + " , " + j);
}
}
}
}
}
|
cs |
* 1부터 50 사이의 5의 배수이면서 3의 배수인 값들의 누적합
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package day03quiz;
public class Day03Q07 {
public static void main(String[] args) {
// 1. 1부터 50 사이의 정수 출력
int sum = 0;
for (int i = 1; i<= 50; i++) {
// 2. 특정 조건을 만족하면 누적합을 구하기
if (i%5 == 0 && i%3 == 0) {
sum += i;
System.out.println(i + " : " + sum );
}
}
}
}
|
cs |
* 구구단 2단부터 9단까지 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package day03;
// 구구단 2단부터 9단까지 출력하는 코드를 작성하시오.
// 반복문을 다시 반복할 수 있다.
public class quiz8번 {
public static void main(String[] args) {
for(int j = 2; j <= 9; j++) {
for(int i = 1; i <= 9; i++) {
System.out.println(j+" * "+i+" = "+j*i );
}
System.out.println("-----------------");
}
}
}
|
cs |
* 사용자로부터 한 자리 숫자를 입력받아 해당 단을 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package day03;
import java.util.Scanner;
public class quiz9번 {
public static void main(String[] args) {
System.out.println("몇 단?");
Scanner sc = new Scanner(System.in);
int value = sc.nextInt();
for (int i = 1; i<=9; i++) {
System.out.println(value + " * " + i + " = " + value*i);
}
}
}
|
cs |
* 19단을 3가지 반복문을 사용해서 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package day03;
public class quiz10번 {
public static void main(String[] args) {
// for 문
for (int i = 1; i <= 9; i++) {
System.out.println(19+" * "+i+" = "+i*19);
}
System.out.println("----------");
// while 문
int i = 1;
while (i<=9) {
System.out.println(19+" * "+i+" = "+i*19);
i++;
}
System.out.println("----------");
// do ~ while 문
int j = 1;
do {
System.out.println(19+" * "+j+" = "+j*19);
j++;
} while (j<=9);
}
}
|
cs |
* 사용자에게 입력 받아 그 수만큼 별을 줄로 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package day03;
import java.util.Scanner;
public class quiz11번 {
public static void main(String[] args) {
System.out.println("몇 줄?");
Scanner sc = new Scanner(System.in);
int j = sc.nextInt();
String str = "";
for (int i = 1; i <= j; i++) {
str += "*";
System.out.println(str);
}
}
}
|
cs |
* 이중 for 문을 사용해서 별 다섯 줄 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package day03quiz;
public class Day03Q12 {
public static void main(String[] args) {
for (int j = 1; j <= 5 ; j++) {
for (int i = 1; i<= j; i++) {
System.out.printf("*");
}
System.out.println();
}
}
}
|
cs |
* 구구단 2단부터 9단까지 옆으로 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package day03;
public class quiz13번 {
public static void main(String[] args) {
for(int j = 2; j <= 9; j++) {
for(int i = 1; i <= 9; i++) {
System.out.print(j+" * "+i+" = "+i*j + " ");
}
System.out.println();
}
}
}
|
cs |
* 11111 22222 33333 44444 55555 세로로 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package day03;
public class quiz14번 {
public static void main(String[] args) {
for(int i = 1; i <=5; i++) {
System.out.println("" + i+i+i+i+i);
}
}
}
|
cs |
* 줄어드는 별 다섯 줄 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package day03quiz;
public class Day03Q16 {
public static void main(String[] args) {
for (int j = 5; j >= 1; j --) {
for (int i = 1; i <= j; i ++) {
System.out.printf("*");
}
System.out.println();
}
}
}
|
cs |