본문 바로가기
백엔드 과정(2023)

코틀린 2주차 -2

by Enzo.enzo 2023. 12. 8.

목표

더보기
  • Lv3 : AddOperation(더하기), SubstractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스를을 만든 후 클래스간의 관계를 고려하여 Calculator 클래스와 관계를 맺기
    • 관계를 맺은 후 필요하다면 Calculator 클래스의 내부코드를 변경하기
      • 나머지 연산자(%) 기능은 제외합니다.
    • Lv2 와 비교하여 어떠한 점이 개선 되었는지 스스로 생각해 봅니다.
      • hint. 클래스의 책임(단일책임원칙)
  • Lv4 : AddOperation(더하기), SubtractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스들을 AbstractOperation라는 클래스명으로 만들어 사용하여 추상화하고 Calculator 클래스의 내부 코드를 변경합니다.
    • Lv3 와 비교해서 어떠한 점이 개선 되었는지 스스로 생각해 봅니다.
      • hint. 클래스간의 결합도, 의존성(의존성역전원칙)
티켓 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