2017-10-26 1 views
0

나는 당신이 저에게 조금 도움이 될 수 있습니다 희망 :"문자 이름"이 고유 한 배열을 만드는 방법은 무엇입니까?

var characters1 = [Character]() 

    func selectCharacterScreen1() { 
    var name: String = "" 
    var error: Bool = false 

    repeat { 
     if error == true { 
      print("Please type a valid character's name. His name must be unique.") 
     } 
     else { 
      print("Please type an unique character's name") 
     } 
     name = inputString() 
     error = false 
     for c in characters1 { 
      if c.nameCharacter == name { 
       error = false 
       break 
      } 
     } 
    } while error == true 
} 

나는 코드가 캐릭터의 이름이 고유 또는 모든 경우에 확인하는 것을 기대합니다. 그렇지 않으면 코드가 거부해야하며 사용자는 다른 캐릭터의 이름을 다시 입력해야합니다. 이 코드에서는 문자의 이름을 입력 할 수 있지만 코드가 문자의 이름이 고유한지 여부는 상관하지 않습니다. 모든

+0

관련이 없지만 기존 클래스와 이름이 같은 클래스는 생성하지 마십시오. –

+0

조언을 주셔서 감사합니다 – chris3365

+3

정말 여기에 질문이 없습니다. 코드는 무엇을하고 무엇을 기대합니까? 나는 "예상대로 작동하지 않습니다"(독자가 거의이를 발견하지 못했다는) 것을 숨기는 주석을 볼 수 있지만 그렇다고해도 명확하지 않습니다. 너는 무엇을 기대 했는가? – halfer

답변

0

첫째, 목록 문자열이 아닌 문자를 포함해야하며, 둘째, 코드는 주변 매우 불분명하다 :

repeat { 
     if error == true { 
      print("Please type a valid character's name. His name must be unique.") 
     } 
     else { 
      print("Please type an unique character's name") 
     } 
     name = inputString() 
     error = false 
     for c in characters1 { 
      if c.nameCharacter == name { 
       error = false 
       break 
      } 
     } 
} while error == true 

당신은에 (= 잘못된 오류의 아이디어에 fundemental 결함이 for 루프). 이름이 고유하지 않은 것으로 일치하면 오류를 true로 설정해야합니다.

만 입력 한 이름을 찾고 그 이름이 Characters1 목록에 이미 있는지 확인하는 경우, 다음과 같이 읽을 루프의 변경 :

for c in characters1 { 
    if c == name { 
     error = true # it has to set error to true so the for loop rejects the name and restarts 
     break 
    } 
} 
if error == false { 
    characters1.append(name) 
} 

이 코드는 하나의 플레이어 작동합니다. 당신이 입력하려면, 다음과 같이보고, for 루프에서 전체 반복 루프를 넣어, 3 이름을 말 :

var characters1 = [String]() 

func selectCharacterScreen1() { 
    var name: String = "" 
    var error: Bool = false 

    for x in 1...3{ 
     repeat { 
      if error == true { 
       print("Please type a valid character's name. His name must be unique.") 
      } 
      else { 
       print("Please type an unique character's name") 
      } 
      name = inputString 
      error = false 
      for c in characters1 { 
       if c == name { 
        error = true 
        break 
       } 
      } 
      if error == false { 
       characters1.append(name) 
      } 
     } while error == true 
    } 
} 

나는이 시도하고 날 위해 일했습니다. 이해가 안되면 알려주세요

+0

자, 코드를 사용해 보겠습니다. 고마워요. 나는 그것이 작동하는지 당신에게 말할 것이다 : – chris3365

+0

ok 나는 그것을 시도하고 'else'에서 xcode로부터 에러를 얻는다 : 'String'타입의 값을 예상되는 인자 타입 'Character'로 변환 할 수 없다. – chris3365

+0

' 배열의 함수를 포함합니까? – chris3365

관련 문제