注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > 微软开发专栏 > VC.NET 内容正文:VC#2005快速入门之使用while语句

VC#2005快速入门之使用while语句

发布时间:2006-07-16 12:45:27 来源:csdn 网友评论 0 条
  使用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 Press/Visual CSharp Step by Step/Chapter 5/WhileStatement子文件夹中。

  2. 选择“调试”|“开始执行(不调试)”。

  Visual Studio 2005将生成并运行这个Windows应用程序。应用程序本身是一个简单的文本文件查看器,允许你选择一个文件来显示它的内容。

  3. 单击“Open File”(打开文件)按钮。

  随后会出现“打开”对话框

  4. 切换到My Documents文件夹下的/Microsoft Press/Visual CSharp Step by Step/ Chapter 5/WhileStatement/WhileStatement子文件夹。

  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 */注释替换成以下语句:

source.Text = "";

  source字段是窗体上最大的文本框。把它的Text属性设置成空字符串(""),就可以清除当前显示的任何文本。

  9. 在刚才在openFileDialog_FileOk方法中添加的那一行语句之后,输入以下语句:

TextReader reader = src.OpenText();

  该语句声明了一个名为reader的TextReader变量 (TextReader是.NET Framework提供的另一个类,它用于从文件这样的来源中读取字符流。该类位于System.IO命名空间中)。OpenFileDialog类提供了OpenText方法,它用于打开用户在“打开”对话框中选择的文件。OpenText方法返回的是一个TextReader对象。上述语句的作用就是将reader初始化为从src.OpenText方法调用中返回的TextReader对象。现在,可以使用reader变量来读取用户选择的文件中的内容。

  10. 在添加到openFileDialog_FileOk方法的上一行语句之后,接着输入以下语句:

string line = reader.ReadLine();
while (line != null)
{
 source.Text += line + '/n';
 line = reader.ReadLine();
}

reader.Close();

  上述代码声明了一个名为line的string变量,它用于容纳reader从文件中读取的每一行文本。语句调用reader.ReadLine方法从文件中读取第一行文本。该方法要么返回下一行文本,要么返回一个名为null的特殊值(如果没有更多的行可供读取)。这个调用的结果将赋给line变量。

  while循环开头的布尔表达式检查line变量的值。如果不为null,循环主体就显示读取的文本行,具体的做法是将该行附加到名为source的TextBox控件的Text属性尾部,并在最后添加一个换行符('/n')。TextReader对象的ReadLine方法在读取每一行的时候,会自动剥除换行符,所以需要重新添加这个换行符。随后,while循环将读取下一行文本(这是循环的“更新”语句),然后执行下一次重复。

  循环结束后,调用extReader对象的Close方法来关闭文件。

  提示 熟悉C#语法之后,你会发现while循环中的代码能缩写成下面这样:
 
string line;
while ((line = reader.ReadLine()) != null) { source.Text += line + '/n'; }
reader.Close();

  在这种情况下,循环开头的布尔表达式同时还要执行初始化和更新操作。其中将调用ReadLine方法,并将返回值赋给line变量。然而,赋值语句实际会生成一个值——要赋值的表达式的值。所以,可以使用一个关系操作符来比较一个赋值表达式的结果,并最终生成一个布尔结果。在这个例子中,如果所赋的值为null,赋值表达式的值就是null,与null值比较的结果将为true。

  11. 选择“调试”|“­开始执行(不调试)”。

  12. 单击“Open File”按钮,随后会出现“打开”对话框。

  13. 切换到My Documents文件夹中的/Microsoft Press/Visual CSharp Step by Step/ Chapter 5/WhileStatement/WhileStatement子文件夹,选择Form1.cs文件,并单击 “打开”。
这一次,所选文件的内容将在文本框中完整地显示出来,如图1所示。


图1 文本框中完整显示所选文件的内容
  14. 在文本框中找到openFileDialog_FileOk方法。验证该方法已经包含刚才所添加的代码。

  15. 关闭窗体。

  返回Visual Studio 2005编程环境。
相关文章
  • VC#2005快速入门之复合赋值操作符
  • VC#2005快速入门之使用if语句
  • VC#2005快速入门之使用布尔操作符
【评论】【收藏本文】【打印】【关闭】
上一篇文章:Visual C++ 2005图像编程之属性设置栏
下一篇文章:VC中自动改变控件位置和大小的对话框类
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
用VC获取其它程序的命令行参数
用VC获取其它程序的命令行参数
用Visual C++设计QQ群管理工具
用Visual C++设计QQ群管理工具
推荐阅讯
  • VC#2005快速入门之使用布尔操作符
  • 利用VC# 2005为数码照片添加拍照日期
  • VC中回调函数使用的变身大法
  • Visual C++2005中开发自定义绘图控件
  • VC++实现工具栏上添加平面组合框控件
  • VC技巧:在程序的状态栏中实现进度条
  • 在Visual C#中使用XML之编写XML
  • Visual C++程序调试方法入门
  • VC#2005快速入门之使用while语句
  • Visual C#中用WMI编写黑客程序之简介
阅读排行
  • 1.VC++编程实现广告窗口自动关闭
  • 2.深入浅出VC++串口编程之基于控件
  • 3.解读VC++编程中的文件操作API和CFile类
  • 4.利用Visual C#实现ICMP网络协议
  • 5.深入浅出VC++串口编程之第三方类
  • 6.掀起你的盖头来——谈VC++对象模型
  • 7.Visual C#中用WMI控制远程计算机
  • 8.深入浅出VC++串口编程之基于Win32 API
  • 9.Visual C++2005中开发自定义绘图控件
  • 10.深入浅出VC++串口编程之基本概念
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载