2015-10-13 6 views
0

Так что я делаю приложение калькулятора быстрым, и я хочу отображать «Ошибка» вместо стандартного сообщения «Inf» в UIlabel, когда пользователь пытается разделить любое число на ноль Вот мой код но он не отображает сообщение «error» любых идей, что я должен делать?Ловля ошибки при делении на 0 в Swift

switch operationActive 
      { 
       case 1001: 
        x = y + x 
       case 1002: 
        x = y - x 
       case 1003: 
        x = y * x 
       case 1004: 
        x = y/x 
        if x == 0 
        { 
         self.result.text = "Error" 
       } 
       //Default is our "=" sign 
       default: self.result.text = " " + String(x) 
     } 

Вот полный нерабочим версия

@IBAction func operations(sender: UIButton) 
    { 
     if enterFlag != 1 && yFlag == 1 
     { 
      switch operationActive 
      { 
       case 1001: 
        x = y + x 
       case 1002: 
        x = y - x 
       case 1003: 
        x = y * x 
       case 1004: 
        if x == 0 
        { 
         self.result.text = "Error" 
       } 
        else { 
         x = y/x 
       } 
       //Default is our "=" sign 
       default: self.result.text = " " + String(x) 
     } 
     } 
+0

Вы можете изменить порядок заявлений и добавить пункт еще. – Dair

+0

попробовал это, не работает ( –

+0

[Обработка ошибок в Swift] (http://nsscreencast.com/episodes/142-error-handling-in-swift) –

ответ

1

Вы должны охранять деление на ноль первого, просто изменить порядок.

if x==0{ 
    self.result.text = "Error" 
}else{ 
    x = y/x 
} 

И я думаю x и y не Int, поэтому условие должно быть

if abs(x-0) < 0.0000001{ 
    self.result.text = "Error" 
} 
+0

ха-ха, какой тип x и y? – nRewik

+0

x и y are double –

+0

не повезло, но отображает только нулевое значение –