如果for里面换成了函数结果会是怎么样呢?下面就来介绍一下

  1. package praDemo;
  2. public class Test {
  3. public static boolean foo(char c) {
  4. System.out.println(c);
  5. return true;
  6. }
  7. public static void main(String[] args) {
  8. int i = 0;
  9. for (foo('A');foo('B') && (i < 2);foo('C')) {
  10. i++;
  11. foo('D');
  12. }
  13. }
  14. }
  15. 结果是:A BDCBDCB 把他当成一个for循环理解就好了 这个很有意思

双重for循环

最经典的------第二种冒泡排序的写法

  1. package thoughtWorksDemo;
  2. public class MaoPaoDemo{
  3. public static void main(String[] args) {
  4. int[] s = {1,10,20,15,3,19};
  5. //外层循环次数
  6. for (int i = 0; i < s.length; i++) { // 这里之前是长度减一的我发现不减也是可以的
  7. //内层循环
  8. for (int j = 0; j < i; j++) { //j=i 我这个直接根据符号就能决定排序是升序还是降序的了 比较容易记住
  9. if(s[i]<s[j]) { //交换数值
  10. int temp = s[j];
  11. s[j] = s[i];
  12. s[i] = temp;
  13. }
  14. System.out.println("第"+i+"次排序的结果");
  15. for (int j2 = 0; j2 < s.length; j2++) { //输出每次排序的结果
  16. System.out.print(s[j2]+"\t");//1 10 20 15 3 19
  17. }
  18. }
  19. }
  20. System.out.println("最终排序结果:");
  21. for (int i = 0; i < s.length; i++) { //输出排序后的结果
  22. System.out.print(s[i]+"\t");
  23. }
  24. }
  25. }

二维数组(主要讲解一下初始化的过程,也是自己在初始化有些地方不理解的地方)

java二维数组三种初始化

三种初始化方法:

  1. `1.使用大括号直接赋值,适合已经确定知道数组元素的情况`
  2. `2.给定二维数组的大小`
  3. `3.给定二维数组的第一维的数组的大小,在后面进行第二维的定义长度`

具体实现过程

  1. package praDemo;
  2. public class ArrCreat {
  3. public static void main(String[] args) {
  4. //第一种:
  5. //int[][] arr1 = new int[][]{{1,2}, {2, 3}, {4, 5}};
  6. int[][] arr1 = {{1,2}, {2, 3}, {4, 5}};
  7. System.out.println("arr1的数值:");
  8. for(int i=0; i<3; ++i) {
  9. for(int j=0; j<2; ++j)
  10. System.out.print(arr1[i][j]);
  11. System.out.print("\n");//显示成数组的表现形式
  12. }
  13. //第二种
  14. int[][] arr2 = new int[4][3];
  15. System.out.println("arr2的数值:");
  16. for(int i=0; i < arr2.length; ++i)
  17. for(int j=0; j<arr2[i].length; ++j)
  18. arr2[i][j] = i*j;
  19. for(int i=0; i<arr2.length; ++i) {
  20. for(int j=0; j<arr2[i].length; ++j)
  21. System.out.print(arr2[i][j]);
  22. System.out.print("\n");
  23. }
  24. //第三种
  25. int[][] arr3 = new int[5][];
  26. System.out.println("arr3的数值:");
  27. for(int i=0; i<arr3.length; ++i){
  28. arr3[i]=new int[i+1];
  29. for(int j=0; j<arr3[i].length; ++j)
  30. arr3[i][j]= i+j;
  31. }
  32. for(int i=0; i<arr3.length; ++i) {
  33. for(int j=0; j<arr3[i].length; ++j)
  34. System.out.print(arr3[i][j]);
  35. System.out.print("\n");
  36. }
  37. }
  38. }

2018.9.28 典型for循环特殊理解及其二维数组的理解的更多相关文章

  1. 如何用一个for循环打印出一个二维数组

    思路分析: 二维数组在内存中默认是按照行存储的,比如一个二维数组{{1,2,3,},{4,5,6}},它在内存中存储的顺序就是1.2.3.4.5.6,也就是说,对于这6个数组元素,按照从0到5给它们编 ...

  2. php数组函数array_column:不用循环就能提取多维数组内容

    作为一个有多年PHP开发经验的码农,我也是前段时间才发现PHP处理数组有这么好用的函数, 至此之前,我处理数组的数据基本都是使用循环,记录一下两个函数的用法: array_column() 函数 返回 ...

  3. c语言中指针和多维数组的理解

    1.复习指针和数组之间的特殊关系:不带方括号的数组名是一个指针,指向该数组的第一个元素. 2.多维数组: ][];//声明一个二维数组作为举例 a.理解方式1:可以将数组看成行和列构成,即理解成2行4 ...

  4. 深入理解C/C++二维数组

    深入理解C/C++二维数组 前言 本来以为自己对二维数组的理解还可以,没感觉有什么,但是今天小伙伴问了一个问题感觉迷惑了好久,于是决定细致的记录一下,一步一步的探究各种关于二维数组的问题,巩固基础. ...

  5. Insider Dev Tour(2018.06.28)

    时间:2018.06.28地点:北京金茂万丽酒店

  6. 2018.09.28 hdu5435A serious math problem(数位dp)

    传送门 数位dp卡常题. 写了一发dfs版本的发现过不了233. 于是赶紧转循环版本. 预处理出f数组. f[i][j]f[i][j]f[i][j]表示前i位数异或和为j的方案数. 然后每次直接数位d ...

  7. C语言教学--二维数组和指针的理解

    对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...

  8. 关于c语言二维数组与指针的个人理解及处理办法。

    相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...

  9. 数组的定义和使用,理解多维数组和Array类

    数组的作用 在执行程序的过程中,通常会需要存储大量数据.如果只有少量数据,那么通过声明变量,存储到变量中即可.但当我们的数据是20个.40个甚至是100以上时,就意味着需要声明很多变量,这是不现实的, ...

随机推荐

  1. Linux下jenkins改端口、解决内存溢出、版本升级

    1.新版本的jenkins修改端口新版本jenkins的配置文件在/etc/sysconfig/jenkinsvi /etc/sysconfig/jenkins找到JENKINS_PORT=" ...

  2. Python编程:基础学习常见错误整理

    # Python学习之错误整理: # 错误一:# TypeError: cannot concatenate 'str' and 'int' objects# 不能连接str和int对象age = 2 ...

  3. adb调试安卓

    http://blog.csdn.net/liushida00/article/details/49797239

  4. 面试题-Java设计模式举例

    面试题-Java设计模式举例 1.适配器模式 涉及三个角色:Target目标接口.Adaptee源角色.Adapter适配器:Adapter将源接口适配到目标接口,继承源接口,实现目标接口. Java ...

  5. MySql存储引擎MyISAM和InnoDB的区别

    1.MySQL默认采用的是MyISAM. 2.MyISAM不支持事务,而InnoDB支持.InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速 ...

  6. Maven入门之简介与安装

    一.Maven简介 1.什么是Maven? Maven是一个项目管理工具和集成编译工具,它主要包含如下内容: –一个项目对象模型(Project Object Model), –一组标准集合, –一个 ...

  7. zookeeper入门教程

    zookeeper使用场景,不是很难了解,感觉zk监听节点变化,这个功能比较厉害.zk存储的节点组织结构有点像unix文件系统 1.安装zk 运行环境 centos 7 java 8 zookeepe ...

  8. Nodejs中使用异步流程控制Async

    首先,我们都知道,Node基于事件驱动的异步I/O架构,所谓异步就是非阻塞,说白了就是一个事件执行了,我不必等待它执行完成后我才能执行下一个事件.所以在Node环境中的模块基本都是异步的,上一篇说到我 ...

  9. js CheckBox 全选、反选

    <h3>你最喜欢的水果是?</h3> <label><input type="checkbox"/>苹果</label> ...

  10. 22_AOP_切面——静态切面

    [Spring AOP 如何定位连接点] 1.增强提供了连接点的方位信息:如织入到方法前面.后面等. 2.切点描述的是织入到哪些类的哪些方法上. [切点] Spring通过org.springfram ...