강의로 돌아가기
-

코드.

indirect enum Fuel {
    case Gasoline
    case Diesel
    case LPG
    case Electic(hybrid:Fuel?)
}

let mini01Fuel = Fuel.Diesel
let mini02Fuel = Fuel.Gasoline
let sedan01Fuel = Fuel.Electic(hybrid: Electic)

print("mini01은 연료로 \(mini01Fuel)을 씁니다.")
print("mini02는 연료로 \(mini02Fuel)을 씁니다.")
print("sedan01은 연료로 \(sedan01Fuel)을 씁니다.")

이렇게 해봤는데 실행은 안되면서 제출하니 그냥 통과하네요..
왜 그런지 아시는지 ㅜㅜ

작성중인 코드―fuel.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
indirect enum Fuel {
    case Gasoline
    case Diesel
    case LPG
    case Electic(hybrid:Fuel?)
}

let mini01Fuel = Fuel.Diesel
let mini02Fuel = Fuel.Gasoline
let sedan01Fuel = Fuel.Electic(hybrid: Electic)

print("mini01은 연료로 \(mini01Fuel)을 씁니다.")
print("mini02는 연료로 \(mini02Fuel)을 씁니다.")
print("sedan01은 연료로 \(sedan01Fuel)을 씁니다.")
4 개의 답변
Demi

정답 판정에 오류가 있었습니다. 지금 코드를 제출하시면 오답으로 판정됩니다.

  • -
    enum에 전기 추가했다는데 전기는 어디에있나요? Fuel엔 LPG랑 Gasoline 이랑 Diesel 밖에 없던데 - 2017.08.18 11:24
Demi

case Electic(hybrid:Fuel?)가 전기입니다.

  • -
    저게 전기면 Fuel? 부분이 옵셔닐이니깐 .Electic 이라고하면 출력되어야하지 않나요? - 2017.08.18 11:24
Demi

let sedan01Fuel = Fuel.Electic(hybrid: nil)과 같이 써야 정답처리 될겁니다.

let sedan01Fuel = Fuel.Electic(hybrid: Electic)같이 쓰지는 못하구요.. 말로 설명하기 어려운데 이렇게 쓰려고 할 경우
let sedan01Fuel = Fuel.Electic(hybrid: Fuel.Electic(hybrid: Fuel.Electic(hybrid: Fuel.Electic(hybrid: Fuel.Electic(hybrid: ...)))))
이렇게 코드를 무한정 적게 될거에요

  • -
    nil 해도 오류가떠요 ㅜㅜ - 2017.08.18 11:24
-

indirect enum Fuel {
case Gasoline
case Diesel
case LPG
case Electic(hybrid: Fuel?)
}

let mini01Fuel = Fuel.Diesel
let mini02Fuel = Fuel.Gasoline
let sedan01Fuel = Fuel.Electic(hybrid: nil)

print(mini01은 연료로 \(mini01Fuel)을 씁니다.)
print(mini02는 연료로 \(mini02Fuel)을 씁니다.)
print(sedan01은 연료로 \(sedan01Fuel)을 씁니다.)

이렇게 하면

mini01은 연료로 Diesel을 씁니다.
mini02는 연료로 Gasoline을 씁니다.
sedan01은 연료로 Electic(nil)을 씁니다.
이렇게 나오고

제출하면

출력 값이 틀렸습니다.
올바른 결과값: mini01은 연료로 Diesel을 씁니다.\n
실행결과: mini01은 연료로 Diesel을 씁니다.\nmini02는 연료로 Gasoline을 씁니다.\nsedan01은 연료로 Electic(nil)을 씁니다.\n
출력 값이 틀렸습니다.
올바른 결과값: mini02는 연료로 Gasoline을 씁니다.\n
실행결과: mini01은 연료로 Diesel을 씁니다.\nmini02는 연료로 Gasoline을 씁니다.\nsedan01은 연료로 Electic(nil)을 씁니다.\n

이런식으로 오류가나옵니다.

재귀함수가 들어간 열거형은 값을 뽑아올때 일반 열겨형처럼 하면 안되는건가요?

nil로 처음에 넣어봤는데 그냥 오류 떠서 넘어갔거든요.

  • Demi
    다시 제출해보세요. 정답으로 판정될 겁니다. Demi 2017.08.18 11:24
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.