2014-04-07 57 views
13

有沒有一種方法可以在Rust中嵌套for循環,並且可以從內部循環中打開外部循環,例如可以執行的方式。在Java中?我知道Rust支持loop中的命名中斷,但我似乎無法找到關於for的相同信息。Rust中for循環的命名中斷

+0

不完全是你在找什麼,但你總是可以從最裏面的循環內'返回'。 – ZunTzu

+0

謝謝。但這並不是我所需要的,所以我可能會重新組織代碼。 –

回答

27

是的。它使用與生命時間相同的語法。

fn main() { 
    'outer: for x in range(0u, 5) { 
     'inner: for y in range(0u, 5) { 
      println!("{},{}", x, y); 
      if y == 3 { 
       break 'outer; 
      } 
     } 
    } 
} 

請參閱loop labels documentation

+0

謝謝。這正是我所期待的(儘管我在官方手冊中找不到它,至少在v0.9中)。 –

+2

@NoeticJun它在[無限循環](http://static.rust-lang.org/doc/0.9/rust.html#infinite-loops)一節中提到(接着是Break表達式)。儘管這有點令人困惑,因爲示例中斷是「break foo」而不是「break」foo「。它也同時使用「標籤」和「終身」來表示同一件事。它應該被重寫。 –