2015-02-17 26 views
1

移動到代碼的另一部分我已經if語句如下:如何使用我的代碼if語句

if (a.count >= 2) { 
    t2 = array[b % a.count]; 
    array[0] = t2; 
} 

我還有一個聲明,如果是這樣的第一。我想要它做的是如果< = 0,然後轉到某一行,或跳過代碼的某些部分。我將如何做到這一點?我在想沿着

if (a.count <= 0) { 
    goto line 96 
} 

這是行不通的東西線,語法是錯誤的,但我會怎麼做呢?

+0

這看起來像一個XY問題。你可能想重構你的代碼,這樣你就不需要像那樣跳轉。如果你有一個條件,那麼把它的後果放在一個塊裏。 – 2015-02-17 23:01:52

回答

0

將你想要的代碼行放入一個函數(或者如果合適的話,一個塊)並調用該函數(或塊)。如果有幾行代碼需要跳過,您可以隨時從函數中返回,或使用else塊?

1

Goto語句通常被認爲是不好的編程,過度使用它們會導致難以維護和調試的代碼。

這就是說,if/else/else如果提供了所有你需要的功能。

我建議把你需要運行的代碼放在那個if語句裏面的一個單獨的方法中,然後從if語句中調用它。

if (a.count <= 0) { 
    nameOfNewMethod(); 
} 

//somewhere else 
- (void) nameOfNewMethod { 
    //code here 
} 
0

在Objective-C中實際上有一個goto命令。利用它,你必須創建一個標籤,例如:

marker: 

和相同的方法中跳轉到它像這樣:

goto marker; 

但你不能申報這兩個命令之間的任何變量。所有變量必須在跳轉之前創建,以便它們在之後仍然存在。

這裏的goto如何使用的一個示例:

int x = 0; 

    if (a.count <= 0) { 
     goto marker; 
    } 

    x = 5; 

marker:; // <-- semi-colon indicates the label is followed by an empty statement, thus allowing for immediate variable declaration 

    int y = x + 7; 

在這種情況下,如果a.count < = 0,Y == 7,否則ÿ== 12.

+1

雖然這在技術上有效,但更改代碼體系結構可能會創建更具可讀性和可維護性的代碼庫。 – Logan 2015-02-17 23:16:58

+0

@Logan只是回答這個問題。 – 2015-02-17 23:17:13

+0

夠公平的,只是認爲一個免責聲明可能會幫助疲憊的初學者發現這種方式。 :) – Logan 2015-02-17 23:18:26