목표
더보기
- Lv3 : AddOperation(더하기), SubstractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스를을 만든 후 클래스간의 관계를 고려하여 Calculator 클래스와 관계를 맺기
- 관계를 맺은 후 필요하다면 Calculator 클래스의 내부코드를 변경하기
- 나머지 연산자(%) 기능은 제외합니다.
- Lv2 와 비교하여 어떠한 점이 개선 되었는지 스스로 생각해 봅니다.
- hint. 클래스의 책임(단일책임원칙)
- 관계를 맺은 후 필요하다면 Calculator 클래스의 내부코드를 변경하기
- Lv4 : AddOperation(더하기), SubtractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스들을 AbstractOperation라는 클래스명으로 만들어 사용하여 추상화하고 Calculator 클래스의 내부 코드를 변경합니다.
- Lv3 와 비교해서 어떠한 점이 개선 되었는지 스스로 생각해 봅니다.
- hint. 클래스간의 결합도, 의존성(의존성역전원칙)
- Lv3 와 비교해서 어떠한 점이 개선 되었는지 스스로 생각해 봅니다.
티켓 100개가 전부 매진되면 더 이상 구매할 수 없다고 알림창을 띄워줘요의 예시입니다.
var ticketCount = 5
if(ticketCount > 0) {
println("티켓을 구매했어요")
ticketcount--
println("잔여티켓${ticketcount}")
} else {
println("티켓이 모두 매진되었습니다")
}
var ticketCount = 5
if(ticketCount = 0) {
println("티켓이 모두 매진되었습니다")
}
else {
println("티켓을 구매했어요")
ticketcount--
println("잔여티켓${ticketcount}")
}
var koreanScore = 88
var englishScore = 92
var mathScore = 99
var average = (koreanScore + englishScore + mathScore) / 3
when(average >= 90) {
println("당신의 등급은 A입니다")
}
(average >= 80) {
println("당신의 등급은 B입니다")
}
(average >= 70) {
println("당신의 등급은 C입니다")
}
else {
println("당신의 등급은 F입니다")
}
var koreanScore = readLine()!!.toInt() // 국어점수 입력
var englishScore = readLine()!!.toInt() // 영어점수 입력
var mathScore = readLine()!!.toInt() // 수학점수 입력
var average = (koreanScore + englishScore + mathScore) / 3
if(average >= 90) {
println("당신의 등급은 A입니다")
} else if(average >= 80) {
println("당신의 등급은 B입니다")
} else if(average >= 70) {
println("당신의 등급은 C입니다")
} else {
println("당신의 등급은 F입니다")
}
var englishScore = readLine() 영어점수는 입력한 값을 읽는다
!!. 그것은 null이 아니다 >오류 방지
toInt() 숫자성질 부여
level2 과제에 대한 해석.
더보기
입력한 숫자를 읽어야 하므로 readline. 숫자이으로 toInt
오류 요소(null) 을 제거하기 위해 !! 와 else 인식할 수 없음을 프린트
전체 틀>> 숫자를 넣을 때 마다 반복해야 하므로 while 조건식 (for 반복문은 순차적인 반복에 적합)
조건 (연산자) 에 따라 다른 소스코드를 작동시켜야 하므로 when (if else 는 연산마다 최대 5번씩 반복,가독성 떨어짐)
fun(){...} 메인함수. 없으면 작동을 안한다. 나중에 사이드 함수같은 개념이 있는건지 궁금하다
반복문
내 이름을 10번 출력해요 (for)의 예시입니다
fun main) {
// 1부터 10까지 변화하는 i변수
for(i in 1..10) {
println("${i}번째: 내 이름은 참새")
}
}
fun main() {
for(i in 1 until 11 ){
println("${i}번째: 내 이름은 참새")
i++
}
}
i 의 값이 val 이므로 i++ 연산자로 변형하는 것이 허용안됌
fun main() {
var i = 0
while(i < 11) {
println("${i}번째: 내 이름은 참새")
i++
}
}
var 이므로 증가하며 확인
1,2,3 의 결과
더보기
"C:\Program Files\Android\Android Studio\jbr\bin\java.exe" "-
1번째: 내 이름은 참새
2번째: 내 이름은 참새
3번째: 내 이름은 참새
4번째: 내 이름은 참새
5번째: 내 이름은 참새
6번째: 내 이름은 참새
7번째: 내 이름은 참새
8번째: 내 이름은 참새
9번째: 내 이름은 참새
10번째: 내 이름은 참새
Process finished with exit code 0
- break는 가장 가까운 반복문에서 탈출하고 다음 블록으로 넘어가요
- continue는 이후의 코드를 실행하지 않아요
var infos = arrayOf("꿩", "닭", "참새", "오목눈이", "공작새")
for(info in infos) { //infos 의 요소들을 info 에 하나씩 대입
if(info == "참새") {
println("찾았다 참새!")
break //프로그램 종료
} else {
continue //이후의 코드, 메인함수 괄호닫기를 무시함
}
}
WorldMainkt. 게임코드
'백엔드 과정(2023)' 카테고리의 다른 글
코틀린 3주차-2 (0) | 2023.12.13 |
---|---|
코틀린 3주차 (1) | 2023.12.10 |
코틀린 2주차 (2) | 2023.12.08 |
미니 프로젝트 . 팀별 홈페이지 제작 (2) | 2023.12.05 |
3주차 (2) | 2023.12.05 |