C#中几种循环语法的比较

循环操作在程序开发当中使用非常的广泛,当然循环也很容易成为整个

程序运行的性能瓶颈,所以理解C#中几种循环的用法,还是非常重要的。

C#支持一下四种循环方式

1、while循环

2、do...while循环

3、for 循环

4、foreach循环

前三种循环在C++、Java中也是非常常见的,基本用法也差不多,foreach

循环是一种高效的循环,但他有一定的限制。现逐个分析一下每个循环的特点。

1、while循环

while循环通常用于不确定的循环次数时去使用它。

典型用法

bool flag=true;

while(flag)

{

///ToDo

if(检查条件)

flag=false;

}

特点:有可能一次都不执行,如果判断条件存在bug,很有可能出现死循环。

2、do...while循环

功能上和while基本类似,不同之处它保证了循环至少执行一次,当然也很有可能出现死循环。

用法示例:

int i=1;

do{

DoWork();

n++;

}while(n<100);

3、for循环

for循环主要用于循环次数固定的循环,出现死循环的几率很小。

用法示例:

for(int i=1;i<100;i++)

{

console.WriteLine(i);

}

4、foreach循环

是一种十分高效的循环,主要用来遍历IEnumerable的容器类型,比如ArrayList、List等都可以使用

foreach循环来遍历。foreach在保证程序健壮性方面的优势更加明显,使用foreach可以不必

考虑集合的上下限的问题,所以不容易出错。

用法示例:

foreach(int item in list)

{

console.WriteLine(item);

}

使用建议:

1、对于集合类的建议采用foreach,更加高效。

2、对于循环次数不确定的情况下可以考虑while或者do...while循环

3、for循环适合那种确定次数的,比foreach效率要低一些。

公众号:阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse基金会

昨天Eclipse基金会庆祝其成立十周年。2004年2月的新闻稿宣布该非盈利组织的正式成立&#xff0c;由包括开发者、消费者和插件提供商在内的各独立团体组成的董事会&#xff0c;为Eclipse的长期发展负责。 基金会成立时&#xff0c;有19个项目和50个董事会成员&#xff0c;其开源…

.Net架构必备工具列表

原文N多年前微软官网曾发了.Net下必备的十种工具&#xff0c;N多年过去了&#xff0c;世异时移&#xff0c;很多东西都已经变化了&#xff0c;那个列表也似乎陈旧了。而且&#xff0c;该文也只是对十种工具独立的介绍&#xff0c;显得有些罗列的感觉&#xff0c;是不是每个工具…

java scanner接收数组_java – 使用scanner将文件中的整数读入数组

我正在为学校做一份复习工作.赋值是编写一个类,它从标准输入读取一个包含几个整数的文件,这些整数将被放入一个数组中.从这里开始,需要编写方法来找出平均值,中位数,最大值,最小值和标准差.它读起来像这样&#xff1a;4556677889等等…所以,我假设我需要创建一个数组列表(因为长…

Asp.Net页面传值的方法简单总结【原创】

1、QueryString当页面上form按照get的方式向页面发送请求数据的时候&#xff0c;web server会将请求数据放入一个QEURY_STRING的环境变量中&#xff0c;然后通过QeueryString方法从这个变量中获取相应的参数。例如&#xff1a;发送参数页面Test1.aspx 按钮单击代码&#xff1a;…

关于archlinux下的ralink5370网卡

驱动此网卡要使用 rt2800usb&#xff0c;rt2800lib 这两个模块 顺便说一下对模块进行操作的命令&#xff1a; rmmod 模块名 //为移除模块 insmod 模块所在路径 //为添加模块 查看网卡是否能被驱动&#xff0c;可以使用命令&#xff1a;ifconfig -a 转载于:https://www.cnblogs.…

java xml 递归_Java递归遍历XML所有元素

import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.DocumentException;import org.dom4j.Element;import java.util.*;/*** Created by IntelliJ IDEA.* User: leizhimin* Date: 2008-4-14 14:02:12* Note: Java递归遍历XML所有元素*/public class …

【基础】C#异常处理的总结

一、异常处理的理解&#xff1f;异常处理是指程序在运行过程中&#xff0c;发生错误会导致程序退出&#xff0c;这种错误&#xff0c;就叫做异常。因此处理这种错误&#xff0c;就称为异常处理。二、异常处理如何操作&#xff1f;C# 异常处理时建立在四个关键词之上的&#xff…

Java Web 路径问题

可能在做文件上传或者 图片加载&#xff0c;资源加载 时候用到文件相对服务器地址 System.out.println(request.getRemoteUser()); //客户端用户System.out.println(request.getRemoteAddr()); //客户端IPSystem.out.println(request.getRemoteHost()); //客户端主机名Syst…

mysql 多字节编码漏洞_phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)

漏洞详情范围 phpMyAdmin 4.8.0和4.8.1原理 首先在index.php 50-63行代码$target_blacklist array (import.php, export.php);// If we have a valid target, lets load that script insteadif (! empty($_REQUEST[target])&& is_string($_REQUEST[target])&&…

.Net开发的两个小技巧

一、符号的妙用1、可以作为保留关键字的标识符C#规范当中&#xff0c;不允许使用保留关键字&#xff08;class、bool等&#xff09;当作普通的标识符来命名&#xff0c;这时候符号作用就体现出来了&#xff0c;可以通过符号前缀把这些保留关键字可以当作普通的字符使用。比如&a…

Codeforces Round #FF (Div. 1) A. DZY Loves Sequences

原题链接&#xff1a;http://codeforces.com/problemset/problem/446/A 题意&#xff1a;给一个长度为n的序列&#xff0c;最多可以修改一个位置的数&#xff0c;求最长连续上升子序列。 题解&#xff1a;当a[i1] > a[i-1]2的时候&#xff0c;可以通过改变a[i]的值来使前后两…

25句张小娴经典爱情语录,句句穿心!

1、女人在床上流的眼泪&#xff0c;比在任何一个地方多。男人在床上说的谎话&#xff0c;也比在任何一个地方多。2、承诺本来就是男人与女人的一场角力&#xff0c;有时皆大欢喜&#xff0c;大部份的情况却两败俱伤。3、爱情正是一个将一对陌生人变成情侣&#xff0c;又将一对情…

mysql 数据库事务处理_Mysql事务处理问题 - mysql数据库栏目 - 自学php

今天和同学讨论起数据库事务处理的问题&#xff0c;感觉讨论中明白了一些&#xff0c;有些知识看过了&#xff0c;但是没有实际使用还是不理解。事务处理就是将一系列操作当做一个原子操作&#xff0c;要么全部执行成功&#xff0c;如果执行失败则保留执行期的状态。通过提交和…

[LeetCode] Palindrome Linked List

Given a singly linked list, determine if it is a palindrome. 一开始想用栈&#xff0c;但是试来试去发现写不出来遂放弃&#xff0c;后来想想再不济可以转换成数组然后分别两头扫&#xff0c;但是这样就用了O(n) 的空间&#xff0c;再进一步&#xff0c;可不可以在链表里模…

【原创】Ajax的用法总结

一、什么是AjaxAjax英文全称为“ Asynchr JavsScript and XML”&#xff08;异步的JavaScript和XML&#xff09;&#xff0c;是一种创建交互式网页的开发技术。二、Ajax技术的核心Ajax是一系列相关技术的融合&#xff0c;其核心包括XMLHttpRequest、JavsScript和DOM技术&#x…

gprs java_WISMO模块GPRS上网设置的过程

WISMO模块GPRS上网设置的过程一) AT指令设置部分(1) ATCGCLASS“B”置为“网络WISMO模块GPRS上网设置的过程一) AT指令设置部分(1) ATCGCLASS“B”置为“B”模式。(2) ATCGDCONT1&#xff0c;“IP”&#xff0c;“CMNET”设置APN。(3) ATCSQ 检查信号 若返回10—31&#xff0c…

loadrunner性能测试步骤

性能测试过程分为4个阶段&#xff1a;设计、构建、执行、分析/诊断/调节具体的工作流程如下图 设计  >  构建  >  执行   >  分析/诊断/调节 收集要求    设置测试环境 基准测试    诊断瓶颈 设计测试策略  记录测试脚本 性能测试     调…

Asp.Net生命周期的详解

一&#xff0e;Asp.Net页面生命周期的概念当我们在浏览器地址栏中输入网址&#xff0c;回车查看页面时&#xff0c;这时会向服务器端IIS&#xff09;发送一个request请求&#xff0c;服务器就会判断发送过来的请求页面&#xff0c;当完全识别 TTP页面处理程序类后&#xff0c;A…

java chain_java 8中 predicate chain的使用

java 8中 predicate chain的使用简介Predicate是一个FunctionalInterface&#xff0c;代表的方法需要输入一个参数&#xff0c;返回boolean类型。通常用在stream的filter中&#xff0c;表示是否满足过滤条件。boolean test(T t);基本使用我们先看下在stream的filter中怎么使用P…

前段技术学习计划

资料&#xff1a; 著作权归作者所有。 商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 作者&#xff1a;陈禹鲁 链接&#xff1a;http://www.zhihu.com/question/19809484/answer/35544452 来源&#xff1a;知乎 第一本&#xff0c;入门 《Head first HTML&…