2016-02-11 22 views
-2

我想在斯威夫特兩個數字相加,並打印其總和斯威夫特增加:執行被中斷,原因是:EXC_BAD_INSTRUCTION(代碼= EXC_l386_INVOP,子碼=爲0x0)

import Foundation 

func solveMefirst(firstNo: Int , secondNo: Int) -> Int { 
    return firstNo + secondNo 
} 

let num1 = readLine() 
let num2 = readLine() 

var IntNum1 = Int(num1!) ** Execution was interrupted, reason: EXC_BAD_INSTRUCTION (Code=EXC_l386_INVOP, subcode=0x0). ** 
var IntNum2 = Int(num2!) 

let sum = solveMefirst(IntNum1!, secondNo: IntNum2!) 
print(sum) 

但不幸的是這個錯誤出來,並停止在操場上的執行。

Execution was interrupted, reason: EXC_BAD_INSTRUCTION (Code=EXC_l386_INVOP, subcode=0x0). 

enter image description here

無法明白,什麼是錯的呢?

UPDATE

也請解釋如何運行在操場這個命令行程序?

我怎樣才能從操場採集??。

+0

'num1'和'num2'是零,你可以清楚地在輸出中看到 - 什麼是應該,當你拆開包裝他們的情況發生? – luk2302

+1

你應該閱讀[Swift語言中感嘆號的含義是什麼?](http://stackoverflow.com/questions/24018327/what-does-an-exclamation-mark-mean-in-the-swift-language) ,它會有很大的幫助。 – Moritz

+0

@EricD。你能解釋一下如何在遊樂場採取STDIN輸入 –

回答

1

它因爲強制導致錯誤的nil值而崩潰; 正如你可以閱讀左邊num1= nil它不知道它應該是什麼,但有錯誤。因爲當你試圖強制一個值爲num1(這就是「!」所做的),它會崩潰,因爲num1沒有價值。

+0

是的,也許這就是爲什麼錯誤顯示EXC_BAD_INSTRUCTION –

1

我使用命令行來運行它。我認爲你在使用比賽場地,但是你沒有爲num1和num2輸入數據。 運行該項目後,輸入號碼1,然後按回車。然後輸入第二個數字,然後按回車。它會給你想要的結果。你的代碼工作正常。我在這裏運行它。

Output of Command Line Based Project

+0

很好的編輯。謝謝。 – Moritz

+0

積極的建議總是讚賞:) –

+0

你能告訴我如何在操場上運行這段代碼嗎? –

相關問題