2010-03-29 40 views
19

Làm thế nào để viết một Do .. Trong khi vòng lặp trong C#?Do .. Trong khi vòng lặp trong C#?

(Edit:.! Tôi là một lập trình viên VB.NET cố gắng để làm cho chuyển sang C#, vì vậy tôi không có kinh nghiệm với .NET/VB cú pháp Cảm ơn)

+11

MSDN là mỏ vàng cho các câu hỏi như thế này. Từ khóa '#' do': http://msdn.microsoft.com/en-us/library/370s1zax(VS.80).aspx –

+0

Vì bạn đến từ VB.NET, hãy kiểm tra một số liên kết mà tôi đã cung cấp dưới đây để xem so sánh cú pháp cho vòng lặp cũng như bất kỳ điều gì khác mà bạn sẽ cần ở bên dưới trả lời – dferraro

Trả lời

4
//remember, do loop will always execute at least once, a while loop may not execute at all 
//because the condition is at the top 
do 
{ 
    //statements to be repeated 
} while (condition); 
+0

Điều kiện trong thời gian của bạn không phải là biểu thức Boolean ... –

+0

@Jon Skeet - xin lỗi, tôi thường là VB – BlackICE

+1

do {} trong khi (đúng); –

1

Dưới đây là một ví dụ đơn giản mà sẽ in một số con số:

int i = 0; 

do { 
    Console.WriteLine(++i); 
} while (i < 10); 
42

hình thức tổng quát là:

do 
{ 
    // Body 
} while (condition); 

đâu condition là một số biểu hiện của nhập bool.

Cá nhân tôi hiếm khi viết/trong khi vòng lặp - for, foreach và thẳng while vòng lặp phổ biến hơn nhiều trong trải nghiệm của tôi. Loại thứ hai là:

while (condition) 
{ 
    // body 
} 

Sự khác biệt giữa whiledo...while là trong trường hợp đầu tiên cơ thể sẽ bao giờ được thực thi nếu điều kiện là sai để bắt đầu - trong khi ở trường hợp thứ hai nó luôn luôn được thực hiện một lần trước tình trạng này đã từng được đánh giá.

+11

Và đó là chìa khóa .. nếu bạn muốn đảm bảo thực hiện lần đầu tiên, hãy sử dụng do-while. Nếu không, trong khi thực sự là một cách tiếp cận tốt hơn. –

1
using System; 

class MainClass 
{ 
    public static void Main() 
    { 
     int i = 0; 
     do 
     { 
      Console.WriteLine("Number is {0}", i); 
      i++; 
     } while (i < 100); 
    } 
} 

phương pháp khác sẽ là

using System; 

class MainClass 
{ 
    public static void Main() 
    { 
     int i = 0; 
     while(i <100) 
     { 
      Console.WriteLine("Number is {0}", i); 
      i++; 
     } 
    } 
} 
+0

cảm ơn lời giải thích rõ ràng –

0

Ngoài câu trả lời của Anthony Pegram, bạn có thể sử dụng cũng là vòng lặp while, trong đó kiểm tra điều kiện trước khi đi vào vòng lặp

while (someCriteria) 
{ 
    if (someCondition) 
    { 
     someCriteria = false; 
     // or you can use break; 
    } 
    if (ignoreJustThisIteration) 
    { 
     continue; 
    } 
} 
1

Khá đáng ngạc nhiên là chưa có ai đề cập đến ví dụ cổ điển cho việc xây dựng do..while. Do..while là cách để đi khi bạn muốn chạy một số mã, kiểm tra hoặc xác minh một cái gì đó (thường tùy thuộc vào những gì đã xảy ra trong quá trình thực thi mã đó), và nếu bạn không thích kết quả, hãy bắt đầu lại. Đây chính là điều bạn cần khi bạn muốn có một số đầu vào sử dụng phù hợp với một số hạn chế:

bool CheckInput(string input) { ... } 
... 
string input; 
... 
do { 
    input=Console.ReadLine(); 
} while(!CheckInput(input)); 

Đó đúng là một hình thức chung: khi điều kiện là đủ đơn giản, nó phổ biến để đặt nó trực tiếp trên cấu trúc vòng lặp (bên trong dấu ngoặc vuông sau từ khóa "trong khi"), thay vì có phương pháp tính toán nó.

Các khái niệm chính trong cách sử dụng này là bạn phải yêu cầu người dùng nhập ít nhất một lần (trong trường hợp tốt nhất, người dùng sẽ nhận được ngay tại lần thử đầu tiên); và điều kiện đó không thực sự có ý nghĩa nhiều cho đến khi cơ thể thực hiện ít nhất một lần. Mỗi trong số này là những gợi ý tốt mà làm .. trong khi đó là công cụ cho công việc, cả hai người trong số họ với nhau gần như là một đảm bảo.

7

Vì bạn đã đề cập đến bạn đến từ VB.NET, tôi thực sự khuyên bạn nên xem this link để hiển thị so sánh. Bạn cũng có thể sử dụng this wensite để chuyển đổi VB sang C# và ngược lại - vì vậy bạn có thể chơi với mã VB hiện tại của bạn và xem những gì nó trông giống như trong C#, bao gồm các vòng lặp và bất cứ điều gì khác theo con trai ..

Để trả lời câu hỏi vòng lặp, bạn đơn giản muốn làm điều gì đó như:

while(condition) 
{ 
    DoSomething(); 
} 

Bạn cũng có thể làm - trong khi như thế này:

do 
{ 
    Something(); 
} 
while(condition); 

Dưới đây là another code translator Tôi đã sử dụng thành công, và another great C#->VB comparison website. Chúc may mắn!

+0

cảm ơn các liên kết đến trang so sánh .. đây chỉ là những gì tôi cần –

Các vấn đề liên quan