Java 코드
package eu.tutorials.rockpaperscissors;
import java.util.Scanner;
import java.util.Random;
public class Main {
public static void main(String[] args) {
String computerChoice = "";
String playerChoice = "";
System.out.println("Rock, Paper or Scissors? Enter your choice");
Scanner scanner = new Scanner(System.in);
playerChoice = scanner.nextLine();
Random rand = new Random();
int randomNumber = rand.nextInt(3) + 1;
switch (randomNumber) {
case 1:
computerChoice = "Rock";
break;
case 2:
computerChoice = "Scissors";
break;
case 3:
computerChoice = "Paper";
break;
}
System.out.println(computerChoice);
String winner;
if (playerChoice.equals(computerChoice)) {
winner = "Tie";
} else if (playerChoice.equals("Rock") && computerChoice.equals("Scissors")
|| playerChoice.equals("Paper") && computerChoice.equals("Rock")
|| playerChoice.equals("Scissors") && computerChoice.equals("Paper")) {
winner = "Player";
} else {
winner = "Computer";
}
if (winner.equals("Tie")) {
System.out.println("It's a tie");
} else {
System.out.println(winner + " won!");
}
scanner.close();
}
}
Kotlin 코드
package eu.tutorials.rockpaperscissors
fun main(){
var computerChoice = ""
var playerChoice = ""
println("Rock, Paper or Scissors? Enter your choice")
playerChoice = readln()
val randomNumber = (1..3).random()
when(randomNumber) {
1 -> computerChoice = "Rock"
2 -> computerChoice = "Scissors"
3 -> computerChoice = "Paper"
}
println(computerChoice)
val winner = when {
playerChoice == computerChoice -> "Tie"
playerChoice == "Rock" && computerChoice == "Scissors" -> "Player"
playerChoice == "Paper" && computerChoice == "Rock" -> "Player"
playerChoice == "Scissors" && computerChoice == "Paper" -> "Player"
else -> "Computer"
}
if(winner == "Tie") {
println("It's a tie")
} else {
println("$winner won!")
}
}
주요 차이점
- 입력 처리:
Kotlin의 readln()은 Java의 Scanner.nextLine()에 해당한다. Java에서는 Scanner 객체를 생성해야 한다. - 난수 생성:
Kotlin의 (1..3).random()은 Java에서 Random().nextInt(3) + 1로 대응된다.
Java에서는 Random 클래스를 사용하여 난수를 생성한다. - 조건문:
Kotlin의 when 구문은 Java에서 switch 또는 if-else 구문으로 대체된다.
Java에서는 switch 구문이 Kotlin의 when과 유사한 역할을 하지만, when보다는 다소 제한적이다. - 문자열 보간:
Kotlin에서는 문자열 내에 변수를 $ 기호와 함께 직접 삽입할 수 있다(println("$winner won!")).
Java에서는 문자열 연결을 통해 이를 구현한다(System.out.println(winner + " won!")).
반응형
'Android > Kotlin' 카테고리의 다른 글
[Kotlin] Kotlin에서의 지연 초기화: lateinit 키워드 이해하기 (0) | 2024.04.30 |
---|---|
[Kotlin] Kotlin의 companion object 이해하기 (0) | 2024.04.30 |
[Kotlin,Java] 코틀린과 자바에서 MutableList 선언 및 조작의 차이점 탐구 (2) | 2024.04.23 |
[Kotlin,Java] 자바와 코틀린에서의 프로퍼티 선언 방식의 차이점 설명 (3) | 2024.04.21 |
[Kotlin] Kotlin에서 '..' 연산자로 더 쉽고 간결하게 범위 다루기 (0) | 2024.04.02 |