C#for(;;)是什么意思?
一,正常for循环我们都接触过很多,如下,我们都理解
int[] tt = {,,,,, };
for (int i = ; i < ; i++)
{
Console.WriteLine(tt[i]);
}
二,但是for(;;)实际上它的含义是什么呢?
含义: for后的圆括号中,第一个分号前的内容是执行第一次循环前执行的,第二个分号前的内容是每次执行前都要判断的(如果该处表达式的值为真,那么执行循环体,如果为假,那么就跳出循环体)
三,是不是觉得写到这里大家觉得那么常见的都还要介绍?那我们来点扩展,如下代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace W
{
class Program
{
static void Main(string[] args)
{
int t2 = ;
int t1 = ;
for (Demo.First(ref t1); Demo.Scend(t1, ref t2); )
{
Console.WriteLine(t2);
}
} }
public class Demo
{
public static int j = ;
public static bool First(ref int t1)
{
t1 = ;
return false;
} public static bool Scend(int t1,ref int t2)
{
if (j > )
{
j = j - t1;
t2 = j;
return true;
}
else
{
return false;
}
}
}
}
三,在上述代码中我们看到for (Demo.First(); Demo.Scend(1,ref te); )是在分号调用两个方法,是不是跟平常使用的不一样??那为什么可以这样用呢?我们根据for(;;)的含义来解析。
1,第一个分号前的内容是执行第一次循环前执行的,而第一个分号不会判断true和false,所以当定义返回false时也不会跳出循环
2,第二个分号前的内容是每次执行前都要判断的(如果该处表达式的值为真,那么执行循环体,如果为假,那么就跳出循环体)
随机推荐
- 缓存算法LRU笔记
LRU原理与分析 LRU是Least Recently Used 的缩写,翻译过来就是“最近最少使用”,也就是说,LRU缓存把最近最少使用的数据移除,让给最新读取的数据.而往往最常读取的,也是读取 ...
- 解决git 命令出现end问题
当使用git branch -r是当分支有很多的时候出现end 使用:q可以退出
- asp.net (web)选择文件夹 上传文件
1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...
- web移动端适配方案
web移动端常用解决方案: 一.通过js+rem,这里有一个解决方案(http://imochen.github.io/hotcss/) 1.1.rem兼容性(https://caniuse.com) ...
- [USACO07OPEN]Dining 题解
前言 如果有人不会网络流,那么安利一下我网络最大流Dinic的博客 关于网络流,我多久没有碰这个算法了... 这是一道网络流好题. 题解 这道题目难点主要是构图. 这道题的构图一开始很容易想到建一个超 ...
- [BZOJ1478&1488&1815][SGU282]Isomorphism:Polya定理
分析 三倍经验题,本文以[BZOJ1478][SGU282]Isomorphism为例展开叙述,主体思路与另外两题大(wan)致(quan)相(yi)同(zhi). 这可能是博主目前写过最长也是最认真 ...
- 解决 UIAlterController 不居中问题
最后更新:2017-06-30 现象描述 新公司做的解决的第一个bug 就是 UIAlterController 不居中,莫名其妙的飞出屏幕之外 找了很久的答案,最终在苹果论坛看到了相关的描述 We ...
- Spring Boot 集成 JPA 的步骤
Spring Boot 集成 JPA 的步骤 配置依赖 compile group: 'org.springframework.boot', name: 'spring-boot-starter-da ...
- 模拟vue实现简单的webpack打包
一.安装nodejs,查看是否安装成功 二.package.json项目初始化 npm init 电脑有node环境,在根目录下运行命令npm init初始化项目,根据提示输入项目相关信息,然后运行. ...
- 在bash脚本的for i in编写中将点号``写成单引号‘’或者双引号“”会有什么后果?
编写一个测试脚本: 输入启动命令:https://blog.csdn.net/zhoucheng05_13/article/details/test.sh,结果报错 使用的是root用户,但是仍然提示 ...