博客
关于我
C#成神之路<11> C#循环重复语句
阅读量:345 次
发布时间: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/

    你可能感兴趣的文章
    MongoDB 查询分析
    查看>>
    C++ 环境设置
    查看>>
    C++ 模板(泛型)编程
    查看>>
    编写Makefile.am
    查看>>
    shell编程学习
    查看>>
    狂神说MySQL01:初识MySQL
    查看>>
    5.3.2 等待一段时间:编写延时循环
    查看>>
    6.1 if语句
    查看>>
    1.2.3 项目、项目集、项目组合以及运营管理之间的关系
    查看>>
    光环和你一起迎接改版
    查看>>
    1.12 项目和运营的区别
    查看>>
    2.1 组织运行环境
    查看>>
    7.3 制定预算
    查看>>
    习惯养成记打卡-第7章 项目成本管理
    查看>>
    8.2 质量管理水平、质量管理的发展
    查看>>
    第8章章节试题
    查看>>
    习惯养成记打卡-第9章 项目资源管理
    查看>>
    java并发编程学习一
    查看>>
    LeetCode - 226.翻转二叉树(迭代、递归)2
    查看>>
    LeetCode - 98. 验证二叉搜索树(迭代、递归)2
    查看>>