2016-02-11 23 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

你能告诉我如何在操场上运行这段代码吗? –

相关问题