在C#和Java语言中for和foreach的区别详解

 更新时间:2020年09月25日 14:27:35   作者:蓝色的灬|黑色的丅  
这篇文章主要介绍了在C#和Java语言中for和foreach的区别详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

for循环和foreach循环的区别

  • 首先在这里声明一点,C#和Java这两种语言很相似,尤其是初学的数据类型那一部分,所以这里写的for和foreach的区别在C#和Java中都适用。
  • 我会在下面分别列出两种语言的for和foreach分别循环打印一个数组,大家可以看看区别

话不多说,直接上代码:

//c#
//先创建一个数组
int[] arr = new int[3] {99, 11, 22};
//利用for循环打印(可以创建一个变量 i;判断这个i是否小于数组的长度;每次循环i自增1)
//									(并且中间这个值是一个布尔值)
for(int i = 0; i < arr.Length; i++)
{
//这里是循环体,我们让每次循环都输出数组的第i个数。
Console.WriteLine(arr[i]);
}

//foreach的括号里有四个变量(数据类型 变量名 in 数组名)
foreach(int name in arr)
{
Console.Write(name + ",");
}
//Write输出完成后不会换行,writeLine则会换行。
//加这个逗号是为了输出时把两个数字区分开

//可以在最后加一行等待读取,让控制台不要直接关闭。
Console.ReadKey();

———————以上是C#的循环输出遍历数组,下面是Java的 ————————

//Java
int[] arr = new int[3] {88, 66, 55};
for(int i = 0; i < arr.Length; i++)
{
System.out.println(arr[i]);
}

foreach(int name in arr)
{
System.out.print(name + ",");
}
//print输出完成后不会换行,println则会换行

//java比C#的这点就很方便,不用再最后一行加个等待输入来看最后结果。
//不过在vs2019中好像已经更新了,不会自动关闭,小伙伴们可以自己试试。

Java语言中和C#所需要注意的重点是一样的,就在下面,只不过输出有所区别。

看到这里很多新手可能都会觉得for循环简单一些,其实并非这样,之所以会有人这么认为是因为初学者已经习惯了一种循环,突然转变一种不太习惯,并且不能理解括号中四个值的含义,所以宁可用for

针对这一问题可以这么理解

for和foreach都是循环,新手可以认为for包含foreach,因为foreach只适用于循环数组。foreach并不是比较难,而是为了在遍历数组时更加的简单,就单纯的看遍历数组确实foreach更加简单一点。for循环确实是功能多一些,在很多地方都可以用得到,这一点foreach是做不到的,所以由此可见,foreach只适合遍历数组。

这里有表格可以帮助理解:

for foreach
适用范围 任何可以循环的地方 仅在遍历数组时
难 度 ⭐⭐⭐
变量个数 3个
要写的值 (创建变量;判断是否继续循环;自增) (数据类型 变量名 in 数组名)
值的变化 三个变量都需要根据不同的情况做出不同的调整 只有数据类型需要注意,一般为int(double)或者var

其中foreach中的4个值很简单,希望对大家有所帮助

for循环的三个变量都是须要根据不同情况而有所改变的,foreach中的值虽说有4个,但那不是变量,基本都是固定的,只需要填写对应的数据类型,请外起一个名字,in是固定不变的,最后是要输出的数组名,另外起的名字是什么就在循环体中输出这个名字。千万不要直接输出数组名!

到此这篇关于在C#和Java语言中for和foreach的区别详解的文章就介绍到这了,更多相关C#和Java语言中for和foreach的区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 软件测试学到什么程度,可以开始找工作

    软件测试学到什么程度,可以开始找工作

    其实学习软件测试没有大家想象中的那么难,就算是零基础也不用害怕,学习就是一个从不熟悉到熟悉的过程,那么软件测试学到什么程度,可以开始找工作?下面就来介绍一下
    2007-02-02
  • 高性能高可用高并发架构和系统设计思路大纲

    高性能高可用高并发架构和系统设计思路大纲

    高性能架构和系统设计要求高并发高性能,高性能更多的是先从编码角度、架构使用角度去让我们的单机(单实例)有更好的性能,然后再从整个系统层面来拥有更好的性能;高并发则直接是全局角度来让我们的系统在全链路下都能够抗住更多的并发请求
    2023-08-08
  • ChatGPT体验辅助写代码功能实测(附编程测试)

    ChatGPT体验辅助写代码功能实测(附编程测试)

    ChatGPT最近霸屏了,咱们也来玩玩,下面这篇文章主要给大家介绍使用ChatGPT辅助写代码的体验,需要的朋友可以参考下
    2023-02-02
  • 解决VIM显示utf-8文件乱码问题

    解决VIM显示utf-8文件乱码问题

    在Vim中,有四个与编码有关的选项,它们是:fileencodings、fileencoding、encoding和termencoding。下面,我们详细介绍一下这四个选项的含义和作用,感兴趣的朋友一起看看吧
    2020-02-02
  • idea自动生成UML图的实现图文教程

    idea自动生成UML图的实现图文教程

    UML是一种很重要的分析源码工具,本文主要介绍了idea自动生成UML图的实现图文教程,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 深入浅析ELK原理与简介

    深入浅析ELK原理与简介

    ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。这篇文章主要介绍了ELK原理与介绍,需要的朋友可以参考下
    2021-09-09
  • 在QQ群中接入ChatGPT机器人的操作方法

    在QQ群中接入ChatGPT机器人的操作方法

    这篇文章主要介绍了如何在QQ群中接入ChatGPT机器人,今天我们的分享主要围绕着大部分用户Windows电脑,基于nodejs,需要的朋友可以参考下
    2023-02-02
  • 基数排序算法的原理与实现详解(Java/Go/Python/JS/C)

    基数排序算法的原理与实现详解(Java/Go/Python/JS/C)

    基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。本文将利用Java/Go/Python/JS/C不同语言实现基数排序算法,感兴趣的可以了解一下
    2023-03-03
  • 盘点网络编程必须要知道的基础知识

    盘点网络编程必须要知道的基础知识

    这篇文章主要介绍了盘点网络编程必须要知道的基础知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-07-07
  • IntelliJ IDEA 2020最新注册码(亲测有效,可激活至 2089 年)

    IntelliJ IDEA 2020最新注册码(亲测有效,可激活至 2089 年

    这篇文章主要介绍了IntelliJ IDEA 2020最新注册码,亲测有效,可激活至 2089 年,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05

最新评论