일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2차 비상계엄
- 홈플러스 시그니처 모카골드믹스커피
- 유광버섯 통조림
- 원스휴먼 요리
- 원스휴먼 사료
- 원스휴먼 먹이
- 믹스커피
- 계엄령 외신반응
- 원스휴먼 황금양
- 홈플러스
- 원스휴먼 동물
- 비상계엄령
- 원스휴먼 레시피
- 레시피 파밍
- 2차계엄
- 1203계엄령
- 원스휴먼 쿠폰
- 국방부
- 원스휴먼 황금양 구하기
- 일론머스크
- 계엄령
- 원달러환율
- 원스휴먼 황금양털파밍
- 원스휴먼 레시피 파밍
- 시그니처
- 원스휴먼 스타크롬
- 믹스커피추천
- 커피추천
- 윤석열
- Today
- Total
0101011001010111
kotlin / 조건문, 반복문/ 문제만들어보자 1/5 /문제 : 두 숫자 중 큰 숫자를 찾아내기./ return 사용 본문
kotlin / 조건문, 반복문/ 문제만들어보자 1/5 /문제 : 두 숫자 중 큰 숫자를 찾아내기./ return 사용
[진주] 2023. 8. 9. 19:05문제 : 두 숫자 중 큰 숫자를 찾아내기.
- 첫 번째로 사용자에게 숫자를 입력받아 firstNumber에 저장합니다.
- 입력한 값이 숫자가 아닌 경우 "올바른 숫자를 입력해주세요."라는 메시지를 출력하고 프로그램을 종료합니다.
- 다음으로 두 번째 숫자를 입력받아 secondNumber에 저장합니다.
- 이 숫자 역시 숫자가 아닐 경우 "올바른 숫자를 입력해주세요."라는 메시지를 출력하고 프로그램을 종료합니다.
- 두 숫자를 비교하여 더 큰 숫자를 출력합니다. 만약 두 숫자가 같다면 "두 숫자는 같습니다."라는 메시지를 출력합니다.
답 :
fun main() {
println("첫 번째 숫자를 입력하세요:")
val firstNumber = readLine()?.toIntOrNull()
if (firstNumber == null) {
println("올바른 숫자를 입력해주세요.")
return
}
println("두 번째 숫자를 입력하세요:")
val secondNumber = readLine()?.toIntOrNull()
if (secondNumber == null) {
println("올바른 숫자를 입력해주세요.")
return
}
if (firstNumber > secondNumber) {
println("큰 숫자는 $firstNumber 입니다.")
} else if (secondNumber > firstNumber) {
println("큰 숫자는 $secondNumber 입니다.")
} else {
println("두 숫자는 같습니다.")
}
}
▼코드 뜯어보기 !
fun main() {
println("첫 번째 숫자를 입력하세요:")
}
먼저, 위의 문제 결과값을 보면 " 첫번째 숫자를 입력하세요 : " 라는 문구가 뜹니다.
그렇기에 우리도 , main안에 적어줍니다.
그럼 코드를 실행하면 먼저 "첫번째 숫자를 입력하세요" 라는 문구가 뜨게 됩니다.
다음은, 위의 말이 뜬 다음 사용자로 부터 숫자를 입력 받을 수 있어야겠죠 ?
val firstNumber = readLine()?.toIntOrNull()
그래서 이것의 이름을 firstNumber라 지은거고 ( 다른이름도 가능)
= readLine()?.toIntOrNull() //이것이 뭔지 궁금하실텐데 하나하나 살펴보도록 하겠습니다.
readLine()
: 사용자로부터 콘솔에서 입력받을 수 있는 거! (즉, 사용자가 키보드로 타이핑 할 수 있게 하는 겁니다)
?.
: 코틀린의 safe call연산자라고 부르는데,
이 연산자를 사용하면 객체(우리가 친값) 이 null 이 아닐때만 해당 메소드나 프로퍼티에 접근합니다.
+) 메소드 or 프로퍼티의 개념▼
메소드는 클래스 '안'에 있는 fun 어쩌구 저쩌구를 메소드라고 하고,
프로퍼티는 클래스 내에 있지만, 함수 밖에 있는 변수를 프로퍼티 라고 합니다!
아래 그림 참조하세용
toIntOrNull()
: 이건 String 클래스의 확장 함수로 문자열을 정수하고 변환하려고 시도합니다. 변환에 성공하면 해당 정수 값을 반환하고, 변환이 실패하면 null을 반환합니다.
> 즉 쉽게 말해서 우리가 쓴 값을 정수(1.2.3.4.5같은거) 로 변환하려고 하는데, 만약 정상적으로 숫자를 썼다면, 컴퓨터는 정수로 반환을 할거고, 만약 내가 "ㅇㄹㄹㅇㅁㄴㄹ"라고 쳤다면 이건 문자열이잖아?
그럼 정수로 바꿀수가 없잖아?
그럼 Null이 되는거지.
그래서 이거 모든걸 합치면
val firstNumber = readLine()?.toIntOrNull()
그래서 이렇게 쓰면
이런 과정으로 실행되게 되는것이지!!!!!!!!!
if (firstNumber == null) {
println("올바른 숫자를 입력해주세요.")
return
}
그리고 다음줄을 보자.
여기선, if값이~ ()소괄호 안에 있는 경우, {}에 있는걸 실행한다 .
라는 의미인데,
돌아 가는 구조는 이러하다,
여기서 return의 의미에 대해 궁금할텐데 ,
이 내용은 자세히 정리하도록 하겠다.
▼return은 어떨때 반환되고 종료될까?
https://vjinjoov.tistory.com/36
println("두 번째 숫자를 입력하세요:")
val secondNumber = readLine()?.toIntOrNull()
if (secondNumber == null) {
println("올바른 숫자를 입력해주세요.")
return
}
두번째 숫자를 입력하는 구문은 첫번째와 동일하므로 설명은 생략하도록 하겠다.
if (firstNumber > secondNumber) {
println("큰 숫자는 $firstNumber 입니다.")
} else if (secondNumber > firstNumber) {
println("큰 숫자는 $secondNumber 입니다.")
} else {
println("두 숫자는 같습니다.")
}
자 마지막 내용!
기본적으로 if 함수는
위 그림 처럼 실행되게 된다.
그래서 처음 if 값 ! firstNumber가 secondNumber보다 크다면 !! 큰숫자는 firstNumber라고 얘기하고
두번째는 secondNumber가 firstNumber보다 크다면 큰숫자는 secondNumber라고 얘기하고
이도 저도 아니면 분명 둘은 값이 같을 거기 때문에!
else에는 두 숫자는 같습니다! 라고 적어주었습니다!!
'Kotlin > ★정예★반 숙제' 카테고리의 다른 글
정예반 숙제! 8.23일! (1) | 2023.08.23 |
---|---|
kotlin _ shuffled() /takeLast/take /drop/dropLast/slice (0) | 2023.08.14 |
Kotlin - 문자열에서 특정 알파벳 a의 개수 알아보기. (0) | 2023.08.10 |
kotlin_조건문, 반복문_문제만들어보자 2/5 [문제 : 두 숫자 중 큰 숫자를 찾아내기_while 사용 : 제대로 대답할때까지 나갈 수 없는 고구마] (4) | 2023.08.09 |
정예반 숙제 : 조건문, 반복문 '소수'인지 아닌지 판별기 만들기 (0) | 2023.08.09 |