白駿#1000:A+B
9219 ワード
2つの整数AとBを入力し、A+Bを出力するプログラムを記述する問題
1️⃣
来訪者にサンプルコード アプリケーションコード
まばたきはa,b.理由はIndex out range
linearは空の文字列、[]ステータスです.
しかし、インデックス0と1に近づこうとしたときにエラーが発生しました.linearrにnilが含まれると予想したのとは異なり、readline()を非グローバル強制抽出として指定する理由を理解しました.最初はreadlineにnilがいませんでした!
1️⃣
import Foundation
let line = readLine()!
let lineArr = line.split(separator: " ")
let a = Int(lineArr[0])!
let b = Int(lineArr[1])!
print(a + b)
2️⃣import Foundation
let line = readLine()!
let lineArr = line.components(separatedBy: " ")
print(Int(lineArr[0])! + Int(lineArr[1])!)
関連構文来訪者に
!
:外来強制抽出.答えコードでreadline()値がnilの場合、コードが爆発します.if let
を使用してコードを安全に交換import Foundation
var myName: String? = "sujilee" //myName은 옵셔널타입. "sujilee"로 초기화
var yourName: String? = nil //yourName은 옵셔널타입. nil로 초기화
if let name = myName, let friend = yourName {
print("\(name) and \(friend)")
} else {
print("some nil is bothering you")
}
//OUTPUT : some nil is bothering you
yourName = "sean" //nil이었던 yourName에 "sean" 값을 할당
if let name = myName, let friend = yourName {
print("now \(name) and \(friend)")
}
//OUTPUT : noew sujilee and sean
import Foundation
var line = readLine() //readLine()은 String? 을 반환한다.
//lineArr에 대한 nil가드
if let lineArr = line?.split(separator: " ") {
//a와 b에 대한 nil가드
if let a = Int(lineArr[0]), let b = Int(lineArr[1]) {
print(a + b)
} else {
print("case 2 : a b both nil")
}
} else {
print("case 1 : realine nil")
}
nilがrealineで入る場合が気になるので、プログラムを実行した後にプロンプトに何も入力せずにenterを検索しました.結果は面白かったまばたきはa,b.理由はIndex out range
linearは空の文字列、[]ステータスです.
しかし、インデックス0と1に近づこうとしたときにエラーが発生しました.linearrにnilが含まれると予想したのとは異なり、readline()を非グローバル強制抽出として指定する理由を理解しました.最初はreadlineにnilがいませんでした!
Reference
この問題について(白駿#1000:A+B), 我々は、より多くの情報をここで見つけました https://velog.io/@eelijus/백준-1000-A-Bテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol