一,正常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,第二个分号前的内容是每次执行前都要判断的(如果该处表达式的值为真,那么执行循环体,如果为假,那么就跳出循环体)

随机推荐

  1. 【宝藏】题解(五校联考3day1)

    分析 如果打爆搜的话可以拿60分. 首先知道期望是可以累加的,即i通过j去到k的期望,等于i去到j的期望加j去到k的期望. 所以令d[i]表示i的出度,F[i]表示从i到i的父亲的期望,G[i]表示i ...

  2. 华为云服务器centos7.3 安装jdk

    1. 进入oracle官网 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 服 ...

  3. Serverless 实战 —— 函数计算 + Typescript 实践

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准 ...

  4. jquery获取元素

       let $lis = $('#sidebar-menu li[to]')//获取sidebar-menu下包含to属性的li

  5. luogu P1036 选数 x

    P1036 选数 题目描述 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和.例如当 n=4,k=3,4 个整数分别 ...

  6. C# 很久以前几个常用类

    Base64加密解密 using System; using System.Collections.Generic; using System.Linq; using System.Text; nam ...

  7. TCP服务器并发编程构架:完成端口IOCP模式

    windows下socket网络编程模式:IOCP 完成端口 1)IOCP异步事件的获取放到操作系统的网络驱动层来处理,实际上反而是降低了编程难度, 2)同时对于多线程的并发调度,也放到操作系统级别来 ...

  8. E. Boxers

    E. Boxers 给定N个数字,每个数字可以加一或者减一 使得结果集合中不同数字个数最多 贪心 用桶装数 假如相同的数字$i$超过三个,则上面$i+1$,下面$i-1$都可以分一个 如果相同数字$i ...

  9. 大数据笔记(六)——HDFS的底层原理:JAVA动态代理和RPC

    一.Java的动态代理对象 实现代码如下: 1.接口类MyService package hdfs.proxy; public interface MyService { public void me ...

  10. Linux双网卡绑定和解除

    转载双网卡绑定和解除  一定要在服务管理中关闭NetworkManager服务并禁用自动启动,因为NetworkManager服务是实时生效的,一旦设置错,管理员就得回到机房接显示器配置网络连接. 以 ...