使用while语句,可以在一个布尔表达式为true的前提下重复运行一个语句。
while语句的语法如下:
while ( booleanExpression )statement
首先会对布尔表达式进行求值,如果为true,就运行语句,然后再次求值布尔表达式。如果表达式仍为true,就再次运行语句,并再次求值表达式。这个过程会反复进行下去,直到布尔表达式求值为false;届时,while语句将退出,并从while之后的第一个语句继续。while语句在语法上与if语句有许多相似的地方(事实上,两者除了关键字不同,语法是完全一样的):
表达式必须是一个布尔表达式。
布尔表达式必须放在圆括号内。
假如首次求值时,布尔表达式为false,语句不会运行。
假如想要在一个while的控制下执行两个或者更多的语句,必须使用大括号将语句分组到一个块中。
以下while语句向控制台写入0~9的值:
int i = 0;while (i != 10){ Console.WriteLine(i); i++;}
所有while语句都应该在某个时候终止。新手常犯的错误是忘记添加一个特别的语句,它最终能造成布尔表达式求值为false并终止循环。在上例中,i++;就属于这种情况。
注意 while循环中的变量i控制着最终的循环次数。这是非常流行的一个表示法,具有这个作用的变量有时也称为哨兵变量(Sentinel variable)。
在下面的练习中,准备写一个while循环,它每次从一个源文件中读取一行内容,并将每一行都写入一个文本框中。
使用while语句
1. 在Visual Studio 2005中打开WhileStatement项目,它位于My Documents文件夹下的Microsoft PressVisual CSharp Step by StepChapter 5WhileStatement子文件夹中。
2. 选择调试|开始执行(不调试)。
Visual Studio 2005将生成并运行这个Windows应用程序。应用程序本身是一个简单的文本文件查看器,允许你选择一个文件来显示它的内容。
3. 单击Open File(打开文件)按钮。
随后会出现打开对话框
4. 切换到My Documents文件夹下的Microsoft PressVisual CSharp Step by Step Chapter 5WhileStatementWhileStatement子文件夹。
5. 选中Form1.cs文件,再单击打开。
文件名Form1.cs会在小的文本框中显示,但文件的内容没有在大文本框中显示。这是由于我们还没有实现相应的代码来读取源文件的内容,并在大文本框中显示那些内容。下面的步骤将添加这个功能。
6. 关闭窗体,返回Visual Studio 2005。
7. 在代码和文本编辑器窗口中显示文件Form1.cs的代码,找到openFileDialog_FileOk方法。
用户在打开对话框中选择了一个文件,并在单击打开按钮之后,调用该方法。方法的主体目前是:
string fullPathname = openFileDialog.FileName;FileInfo src = new FileInfo(fullPathname);filename.Text = src.Name;/* add while loop here */
第一个语句声明了一个字符串变量,名为fullPathname,并把它初始化为openFileDialog对象的FileName属性。该语句将fullPathname初始化为打开对话框中选择的源文件的完整名称(包括路径)。
注意 openFileDialog对象是可以从工具箱中选取的OpenFileDialog组件的一个实例。利用这个组件提供的方法,你可以向用户显示一个标准的Windows打开对话框,让用户从中选择一个文件,并获取所选文件的名称和路径。
第二个语句声明了一个名为src的FileInfo变量,并把它初始化成代表打开对话框中所选文件的一个对象(FileInfo是Microsoft .NET Framework提供的一个类,可利用它对文件进行各种处理)。
第三个语句将src变量的Name属性赋给filename控件的Text属性。src变量的Name属性包含了在打开对话框中选定的文件名(但无路径信息)。通过此次赋值,文件名会在Windows窗体的filename组件中显示。
8. 将/* add while loop here */注释替换成以下语句:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
source.Text = "";
source字段是窗体上最大的文本框。把它的Text属性设置成空字符串(""),就可以清除当前显示的任何文本。
9. 在刚才在openFileDialog_FileOk方法中添加的那一行语句之后,输入以下语句:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
TextReader reader = src.OpenText();
该语句声明了一个名为reader的TextReader变量 (TextReader是.NET Framework提供的另一个类,它用于从文件这样的