조건문
if, else if, else
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
| // learnJava 패키지에 포함된 클래스입니다.
package learnJava;
// JAVALEARN 이라는 공개 클래스를 선언합니다. 자바 프로그램의 실행은 이 클래스에서 시작됩니다.
public class JAVALEARN {
// 자바 프로그램의 진입점인 main 메서드를 선언합니다.
// String 배열을 인자로 받는 main 메서드는 프로그램이 실행될 때 호출됩니다.
public static void main(String[] args) {
// turnOn 메서드를 호출하며, 인자로 30을 전달합니다.
// 이는 온도를 나타내며, 30도로 설정합니다.
turnOn(30);
// turnOn 메서드를 한 번 더 호출하며, 이번에는 19를 인자로 전달합니다.
// 이는 온도를 나타내며, 19도로 설정합니다.
turnOn(19);
}
// 온도를 기준으로 에어컨 가동 여부를 결정하는 turnOn 메서드를 정의합니다.
// int 타입의 temp 매개변수를 받아 온도를 인자로 사용합니다.
public static void turnOn(int temp) {
// if 문을 사용하여 조건을 확인합니다.
// 온도가 25도보다 높은지 확인합니다.
if (temp > 25) {
// 조건이 참이면 콘솔에 현재 온도와 에어컨 가동 메시지를 출력합니다.
// printf 함수를 사용하여 형식화된 출력을 합니다.
System.out.printf("현재 온도 %d도, 에어컨을 가동합니다.\n", temp);
}
}
}
|
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
| // learnJava 패키지에 속한 클래스입니다.
package learnJava;
// JAVALEARN 클래스를 선언합니다. 자바 프로그램의 실행은 이 클래스의 main 메서드에서 시작됩니다.
public class JAVALEARN {
// main 메서드는 프로그램의 진입점입니다. String 배열을 매개변수로 받습니다.
public static void main(String[] args) {
// printGrade 메서드를 호출하여 96점을 전달합니다.
printGrade(96);
// printGrade 메서드를 호출하여 86점을 전달합니다.
printGrade(86);
// printGrade 메서드를 호출하여 70점을 전달합니다.
printGrade(70);
// printGrade 메서드를 호출하여 55점을 전달합니다.
printGrade(55);
}
// printGrade 메서드는 점수를 받아 해당 점수의 학점을 출력합니다.
// int 타입의 score 매개변수를 통해 점수를 입력 받습니다.
public static void printGrade(int score) {
// 학점을 저장할 String 타입의 변수 grade를 선언합니다.
String grade = "";
// 점수에 따라 학점을 결정하는 if-else 구조입니다.
if (score >= 90) {
// 점수가 90 이상인 경우, 학점은 'A'입니다.
grade = "A";
} else if (score >= 80) {
// 점수가 80 이상 90 미만인 경우, 학점은 'B'입니다.
grade = "B";
} else if (score >= 70) {
// 점수가 70 이상 80 미만인 경우, 학점은 'C'입니다.
grade = "C";
} else {
// 점수가 70 미만인 경우, 학점은 'F'입니다.
grade = "F";
}
// 형식화된 문자열을 사용하여 점수와 학점을 콘솔에 출력합니다.
System.out.printf("%d점의 학점: %s\n", score, grade);
}
}
|
switch
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
| // learnJava 패키지에 속한 클래스입니다.
package learnJava;
// JAVALEARN이라는 이름의 공개 클래스를 선언합니다.
public class JAVALEARN {
// 프로그램의 진입점인 main 메서드입니다.
public static void main(String[] args) {
// light 메서드를 호출하며 "RED"를 인자로 전달합니다. 이는 빨간 불을 의미합니다.
light("RED");
// light 메서드를 호출하며 "YELLOW"를 인자로 전달합니다. 이는 노란 불을 의미합니다.
light("YELLOW");
// light 메서드를 호출하며 "GREEN"를 인자로 전달합니다. 이는 초록 불을 의미합니다.
light("GREEN");
// light 메서드를 호출하며 "Blue"를 인자로 전달합니다. 이는 파란 불을 의미합니다.
light("Blue");
}
// light 메서드는 색상을 인자로 받아 해당 색상의 불을 켜는 로직을 실행합니다.
public static void light(String color) {
// switch 문을 사용하여 인자로 받은 color 값에 따라 다른 동작을 수행합니다.
switch (color) {
case "RED": // 색상이 빨간색인 경우
// 콘솔에 "빨간불이 켜집니다."를 출력합니다.
System.out.println("빨간불이 켜집니다.");
break; // switch 문을 종료합니다.
case "YELLOW": // 색상이 노란색인 경우
// 콘솔에 "노란불이 켜집니다."를 출력합니다.
System.out.println("노란불이 켜집니다.");
break; // switch 문을 종료합니다.
case "GREEN": // 색상이 초록색인 경우
// 콘솔에 "초록불이 켜집니다."를 출력합니다.
System.out.println("초록불이 켜집니다.");
break; // switch 문을 종료합니다.
case "Blue": // 색상이 파란색인 경우
// 콘솔에 "파란불이 켜집니다."를 출력합니다.
System.out.println("파란불이 켜집니다.");
break; // switch 문을 종료합니다.
default: // 정의되지 않은 색상의 경우
// 콘솔에 에러 메시지를 출력합니다.
System.out.printf("에러, 잘못된 색 입력: %s\n", color);
}
}
}
|
연산자
삼항연산자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| // learnJava 패키지에 속한 클래스입니다.
package learnJava;
// JAVALEARN 클래스를 선언합니다. 이 클래스에서 자바 프로그램의 실행이 시작됩니다.
public class JAVALEARN {
// main 메서드는 프로그램의 진입점입니다.
public static void main(String[] args) {
// printResult 메서드를 호출하며, 13을 인자로 전달합니다.
printResult(13); // 13은 홀수입니다.
// printResult 메서드를 호출하며, 6을 인자로 전달합니다.
printResult(6); // 6은 짝수입니다.
}
// printResult 메서드는 정수 n을 매개변수로 받아 그 정수가 짝수인지 홀수인지를 판별하고 결과를 출력합니다.
public static void printResult(int n) {
// n을 2로 나눈 나머지가 0이면 "짝수", 아니면 "홀수"를 result 변수에 저장합니다.
// 삼항 연산자를 사용하여 짝수, 홀수를 판별합니다.
String result = (n % 2 == 0) ? "짝수" : "홀수";
// 형식화된 문자열을 사용하여 정수 n과 그 결과를 콘솔에 출력합니다.
System.out.printf("정수 %d는 %s입니다.\n", n, result);
}
}
|
논리연산자
||
(or), &&
(and), ^
(xor), !
(not)
||
(or) 연산자는 두 조건 중 하나라도 참이면 참을 반환.&&
(and) 연산자는 두 조건이 모두 참일 때만 참을 반환.^
(xor) 연산자는 두 조건이 서로 다를 때 참을 반환.!
(not) 연산자는 조건의 반대를 반환. 즉, 조건이 참이면 거짓을, 거짓이면 참을 반환.
비교 연산자는 ==
(같음), !=
(다름), <
(작음), >
(큼), <=
(작거나 같음), >=
(크거나 같음) 등이 있으며, 이들은 두 값의 관계를 비교하여 참 또는 거짓을 결정.
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
| // learnJava 패키지에 속한 클래스입니다.
package learnJava;
// JAVALEARN 클래스를 선언합니다. 이 클래스에서 프로그램의 실행이 시작됩니다.
public class JAVALEARN {
// main 메서드는 프로그램의 진입점입니다.
public static void main(String[] args) {
// printScholarship 메서드를 호출하여 "Park"의 수학 100점, 영어 92점 결과를 전달합니다.
printScholarship("Park", 100, 92);
// printScholarship 메서드를 호출하여 "Kim"의 수학 82점, 영어 96점 결과를 전달합니다.
printScholarship("Kim", 82, 96);
// printScholarship 메서드를 호출하여 "Choi"의 수학 82점, 영어 88점 결과를 전달합니다.
printScholarship("Choi", 82, 88);
}
// printScholarship 메서드는 학생의 이름과 수학, 영어 점수를 매개변수로 받아 장학금 지급 여부를 결정하고 결과를 출력합니다.
public static void printScholarship(String name, int math, int eng) {
// 결과를 저장할 문자열 변수 result를 선언합니다.
String result = "";
// 수학과 영어 점수를 평가하여 장학금을 결정합니다.
if(math >= 90 && eng >= 90) {
// 수학과 영어 점수가 모두 90점 이상이면 "전액 장학금"을 부여합니다.
result = "전액 장학금";
} else if (math >= 90 || eng >= 90) {
// 수학 또는 영어 점수 중 하나라도 90점 이상이면 "반액 장학금"을 부여합니다.
result = "반액 장학금";
} else {
// 두 과목 모두 90점 미만이면 장학금을 지급하지 않습니다.
result = "다음 기회에~";
}
// 학생의 이름과 장학금 결과를 형식화된 문자열로 콘솔에 출력합니다.
System.out.printf("%s => %s\n", name, result);
}
}
|
반복문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| // learnJava 패키지에 속한 클래스입니다.
package learnJava;
// JAVALEARN이라는 이름의 공개 클래스를 선언합니다.
public class JAVALEARN {
// main 메서드는 프로그램의 진입점입니다.
public static void main(String[] args) {
// 정수 변수 n을 선언하고 1로 초기화합니다.
int n = 1;
// n이 4보다 작을 동안 while 루프를 실행합니다.
while (n < 4) {
// 현재 n의 값을 콘솔에 출력합니다.
System.out.println(n);
// n의 값을 1씩 증가시킵니다.
n++;
}
// 루프가 종료된 후, "END"를 콘솔에 출력합니다.
System.out.println("END");
}
}
|
문제 풀기
문제 1 BMI
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
| package learnJava;
import java.util.Scanner; // Scanner 클래스를 가져옵니다.
public class JAVALEARN {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in); // Scanner 객체를 생성
System.out.println("키를 입력하세요 (cm): "); // 사용자에게 키 입력을 요청.
int cm = myObj.nextInt(); // 키를 정수로 입력받기.
System.out.println("키 : " + cm + " cm"); // 입력받은 키를 출력.
System.out.println("몸무게를 입력하세요 (kg): "); // 몸무게 입력을 받기.
float kg = myObj.nextFloat(); // 몸무게를 실수로 입력받기.
System.out.println("몸무게 : " + kg + " kg"); // 입력받은 몸무게를 출력.
float meters = cm / 100.0f; // 센티미터를 미터로 변환.
float squaredHeight = meters * meters; // 키의 제곱을 계산.
float bmi = kg / squaredHeight; // BMI를 계산.
System.out.printf("BMI: %.2f\n", bmi ); // 계산된 BMI를 출력.
func(bmi);
}
public static void func(float bmi) {
// 조건문으로 출력
if (bmi >= 30) {
System.out.println("비만도: 비만");
}else if (bmi >= 25) {
System.out.println("비만도: 과체중");
}else if (bmi >= 18.5) {
System.out.println("비만도: 정상");
}else {
System.out.println("비만도: 저체중");
}
}
}
|
ㅇㅈ씨 :
문제 2 급여
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
| package learnJava;
public class JAVALEARN {
public static void main(String[] args) {
printSalary(10000, 160); // 시간당 임금과 근무 시간을 인자로 제공
printSalary(15000, 175);
printSalary(9000, 180);
printSalary(13000, 190);
}
public static void printSalary(int wage, int hours) {
int baseHours = 160; // 기본 근무 시간
float overtimeRate = 1.5f; // 추가 근무 요율
int basePay = 0; // 기본 급여
int overtimePay = 0; // 추가 근무 급여
// 기본 시간이 만약 160을 초과
if (hours > baseHours) {
// 초과 근무 시간 계산
int overtimeHours = hours - baseHours;
// 기본 급여 계산
basePay = baseHours * wage;
// 추가 근무 급여 계산
overtimePay = (int) (overtimeHours * wage * overtimeRate);
// 기본 시간 이하일 때의 급여 계산
} else {
basePay = hours * wage;
}
// 기본 급여가 10000 보다 작을 시 syso
if (wage < 10000) {
System.out.println("[에러]기본 시급이 1만 원보다 작습니다.");
// 근무시간이 180보다 많을시 syso
}else if (hours > 180) {
System.out.println("[에러]근무시간이 180시간을 초과하였습니다.");
}
// 그것도 아닐시 syso
else {
// 총 급여 계산
int totalPay = basePay + overtimePay;
System.out.println("[급여]" + totalPay); // 총 급여 출력
}
}
}
|
나는 위처럼 풀었는데 다른 사람들을 보니까 잘 푼 사람들이 있어서 사진을 찍어왔다.
ㅈㅎ씨 :
엄청 코드가 짧다..역시 수학을 잘해야하는건가. 수학을 다시 열심히 공부해야겠다.
문제 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
| package learnJava;
public class JAVALEARN {
public static void main(String[] args) {
for (int i = 1; i <11; i ++) {
for (int j = 10 - i; j > 0; j--){
System.out.print(" ");
}
for (int j = 1; j < i * 2; j++){
System.out.print("*");
}
System.out.println();
}
for (int i = 9; i > 0; i --) {
for (int j = i; j < 10; j++){
System.out.print(" ");
}
for (int j = 1; j < i * 2; j++){
System.out.print("*");
}
System.out.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
| package learnJava;
public class JAVALEARN {
public static void main(String[] args) {
for(int i = 1; i < 20; i+=2) {
for(int j = 19; j > i; j-=2) {
System.out.print(" ");
}
for(int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
for(int i = 1; i < 20; i+=2) {
for(int j = 0; j < i; j+=2) {
System.out.print(" ");
}
for(int j = 18; j > i; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
|