공부 일지/문제풀이
시험성적
Joshbla
2023. 3. 23. 01:22
문제
https://www.acmicpc.net/problem/9498
9498번: 시험 성적
시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
풀이
Java
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
if(89< A){
System.out.println("A");
} else if (79<A) {
System.out.println("B");
} else if (69<A) {
System.out.println("C");
} else if (59<A) {
System.out.println("D");
} else {
System.out.println("F");
}
}
}
Kotlin
import java.util.Scanner
fun main() {
val sc: Scanner = Scanner(System.`in`)
val grade = sc.nextInt()
var result = when {
grade >= 90 -> "A"
grade >= 80 -> "B"
grade >= 70 -> "C"
grade >= 60 -> "D"
else -> "F"
}
println(result)
}
What's new ?
- is라고하는 연산자가 있다. 좌측과 우측의 자료형이 같으면
- 자바에서 switch - case 문은 코틀린에서 when으로 대체할 수 있다. 심지어 더 편리하다.
- switch문에서는 비교연산을 조건으로 할 수 없다. 그러나 when에서는 위와 같이 비교연산을 조건으로 할 수 있다.
*주의 when을 사용할 때 모든 경우에 대해 조건을 걸지 않거나, else를 사용하지 않으면 에러가 발생한다. - Any라는 최상위 자료형을 사용하면 아래와 같이 사용할 수 도있다.
fun main() {
check(1)
check(30L)
check("김치왕뚜껑")
check(false)
}
fun check(a: Any) {
var result = when(a) {
1 -> "1이다."
is Long -> "Long 타입이다."
!is String -> "String 타입이아니다.
else -> "나머지"
}
println(result)
}
/**출력
1이다.
Long 타입이다.
나머지
String 타입이아니다.
*/