博客
关于我
C#成神之路<11> C#循环重复语句
阅读量:354 次
发布时间:2019-03-04

本文共 3013 字,大约阅读时间需要 10 分钟。

程序循环是编程中常见的基本结构,能够实现重复执行特定任务的功能。循环结构在编程中起着关键作用,能够帮助程序高效地完成任务。以下是关于循环结构的详细分析:

1.1 良性循环与恶性循环

循环在编程中分为良性循环和恶性循环两种。良性循环是指程序能够按照预期顺利执行的循环结构,而恶性循环则会导致程序运行异常或无法继续执行。

良性循环的条件

良性循环需要满足以下三个条件:

  • 初始化循环的初始条件:确保循环有明确的起始点。
  • 提供测试表达式:通过测试表达式判断是否继续执行循环。
  • 更新循环变量:在每次循环中,更新循环变量的当前状态。
  • 无限循环的危害

    无限循环通常是由于程序设计中出现错误或疏忽导致的。每当编写循环结构时,应该在运行程序前仔细检查循环的终止条件,以避免无限循环引发系统故障。


    1.2 for循环

    for循环是一种常用的循环结构,适用于已知循环的次数的情况。以下是使用for循环的注意事项:

    for循环的实现

  • 初始化变量:for循环始于声明语句,初始化循环变量。
  • 条件测试:在每次循环开始时,检查循环条件。如果条件为false,循环终止。
  • 执行循环体:执行循环内部的语句。
  • 更新变量:在循环结束时,更新变量并重复循环。
  • 输入数据验证

    在编写for循环时,应确保用户界面对象的输入数据安全。可以通过tryparse方法验证输入数据是否为正确格式:

    bool flag;int value;if (int.TryParse(inputText, out value)){    // 数据有效,执行循环体}

    格式化字符串数据

    使用Format()方法可以将数据按照指定格式输出。例如:

    string buff = string.Format("{0,5}{1,20}", i, i * i);
    • {0,5}:将第一个参数在5个字符的字段中右对齐。
    • {1,20}:将第二个参数在20个字符的字段中右对齐。

    常见的格式选项包括:

    • {0}:默认格式。
    • {0,15}:右对齐15个字符。
    • {0,5:hh}:右对齐5个字符,并使用12小时制时间格式。

    1.3 while循环

    while循环的实现方式与for循环类似,但循环的条件判断被分散在循环体的两侧。while循环的主要特点是循环条件判断的灵活性。

    while循环的优点

    • 适用于不知道循环次数但需要控制循环次数的情况。
    • 适合处理不确定长度的任务。

    示例

    int number = 0;while (number < 10){    number++;}

    1.4 do-while循环

    do-while循环与while循环的唯一区别是:do-while循环至少会执行一次循环体。这种结构通常用于确保循环体在第一次执行后继续执行。

    do-while循环的实现

  • 执行循环体:do-while循环会在检查循环条件之前就执行循环体。
  • 检查条件:如果循环条件为true,继续执行循环,否则退出循环。
  • 示例

    int counter = 0;do{    counter++;}while (counter < 10);

    1.5 Continue循环

    Continue语句用于在循环体中强制跳过当前迭代,继续执行循环体。Continue语句常用于对某些条件进行特殊处理,而不会终止整个循环。

    使用Continue的场景

    • 需要在某些条件下跳过当前迭代。
    • 需要提前退出循环体但不终止整个循环。

    2. 平方表程序解析

    以下是平方表程序的实现代码:

    using System;using System.Windows.Forms;public class frmMain : Form{    private Label label1;    private Label label2;    private Button btnCalculate;    private Button btnClear;    private Button btnClose;    private TextBox txtStart;    private TextBox txtEnd;    private ListBox lstOutput;    #region Windows Forms设计器生成的代码    private void InitializeComponent()    {        // 生成控件并设置属性...        this.ResumeLayout(false);        this.PerformLayout();    }    public static void Main()    {        frmMain main = new frmMain();        Application.Run(main);    }    private void btnCalculate_Click(object sender, EventArgs e)    {        int start, end, i;        string buff;        // 输入数据验证        if (!int.TryParse(txtStart.Text, out start) || !int.TryParse(txtEnd.Text, out end))        {            MessageBox.Show("请输入数字值", "输入错误");            txtStart.Focus();            return;        }        if (start > end)        {            MessageBox.Show("起始值大于结束值", "输入错误");            txtStart.Focus();            return;        }        // 生成平方表        for (i = start; i <= end; i++)        {            buff = string.Format("{0,5}{1,20}", i, i * i);            lstOutput.Items.Add(buff);        }    }    // 其他事件处理代码...}

    代码解析

  • 用户输入验证:使用int.TryParse方法验证用户输入是否为有效数字。
  • 循环体实现:使用for循环生成从start到end的平方数,并格式化输出。
  • 格式化字符串:使用string.Format方法生成格式化的结果字符串,确保输出格式美观。
  • 数据添加到列表框:将生成的平方数添加到lstOutput列表中供用户查看。

  • 3. 注意事项

  • 错误处理:在编写循环时,应尽量添加错误处理代码,避免程序因输入错误而崩溃。
  • 性能优化:避免在循环体中执行重任务,否则可能导致程序运行缓慢。
  • 代码注释:清晰的注释可以帮助其他开发者更好地理解代码功能。
  • 通过合理运用循环结构,可以让程序更加高效地完成任务,同时避免无限循环带来的问题。在实际开发中,应根据具体需求选择合适的循环结构,并注意代码的规范性和可读性。

    转载地址:http://lusr.baihongyu.com/

    你可能感兴趣的文章
    Nginx 如何代理转发传递真实 ip 地址?
    查看>>
    Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    Nginx 学习(一):Nginx 下载和启动
    查看>>
    nginx 常用指令配置总结
    查看>>
    Nginx 常用配置清单
    查看>>
    nginx 常用配置记录
    查看>>
    nginx 开启ssl模块 [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    Nginx 源码完全注释(11)ngx_spinlock
    查看>>
    Nginx 的 proxy_pass 使用简介
    查看>>
    Nginx 的 SSL 模块安装
    查看>>
    Nginx 的优化思路,并解析网站防盗链
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    Nginx 相关介绍(Nginx是什么?能干嘛?)
    查看>>
    Nginx 知识点一网打尽:动静分离、压缩、缓存、跨域、高可用、性能优化...
    查看>>
    nginx 禁止以ip形式访问服务器
    查看>>
    NGINX 端口负载均衡
    查看>>
    Nginx 结合 consul 实现动态负载均衡
    查看>>
    Nginx 负载均衡与权重配置解析
    查看>>