2018.9.28 典型for循环特殊理解及其二维数组的理解
如果for里面换成了函数结果会是怎么样呢?下面就来介绍一下
package praDemo;
public class Test {
public static boolean foo(char c) {
System.out.println(c);
return true;
}
public static void main(String[] args) {
int i = 0;
for (foo('A');foo('B') && (i < 2);foo('C')) {
i++;
foo('D');
}
}
}
结果是:A BDCBDCB 把他当成一个for循环理解就好了 这个很有意思
双重for循环
最经典的------第二种冒泡排序的写法
package thoughtWorksDemo;
public class MaoPaoDemo{
public static void main(String[] args) {
int[] s = {1,10,20,15,3,19};
//外层循环次数
for (int i = 0; i < s.length; i++) { // 这里之前是长度减一的我发现不减也是可以的
//内层循环
for (int j = 0; j < i; j++) { //j=i 我这个直接根据符号就能决定排序是升序还是降序的了 比较容易记住
if(s[i]<s[j]) { //交换数值
int temp = s[j];
s[j] = s[i];
s[i] = temp;
}
System.out.println("第"+i+"次排序的结果");
for (int j2 = 0; j2 < s.length; j2++) { //输出每次排序的结果
System.out.print(s[j2]+"\t");//1 10 20 15 3 19
}
}
}
System.out.println("最终排序结果:");
for (int i = 0; i < s.length; i++) { //输出排序后的结果
System.out.print(s[i]+"\t");
}
}
}
二维数组(主要讲解一下初始化的过程,也是自己在初始化有些地方不理解的地方)
java二维数组三种初始化
三种初始化方法:
`1.使用大括号直接赋值,适合已经确定知道数组元素的情况`
`2.给定二维数组的大小`
`3.给定二维数组的第一维的数组的大小,在后面进行第二维的定义长度`
具体实现过程
package praDemo;
public class ArrCreat {
public static void main(String[] args) {
//第一种:
//int[][] arr1 = new int[][]{{1,2}, {2, 3}, {4, 5}};
int[][] arr1 = {{1,2}, {2, 3}, {4, 5}};
System.out.println("arr1的数值:");
for(int i=0; i<3; ++i) {
for(int j=0; j<2; ++j)
System.out.print(arr1[i][j]);
System.out.print("\n");//显示成数组的表现形式
}
//第二种
int[][] arr2 = new int[4][3];
System.out.println("arr2的数值:");
for(int i=0; i < arr2.length; ++i)
for(int j=0; j<arr2[i].length; ++j)
arr2[i][j] = i*j;
for(int i=0; i<arr2.length; ++i) {
for(int j=0; j<arr2[i].length; ++j)
System.out.print(arr2[i][j]);
System.out.print("\n");
}
//第三种
int[][] arr3 = new int[5][];
System.out.println("arr3的数值:");
for(int i=0; i<arr3.length; ++i){
arr3[i]=new int[i+1];
for(int j=0; j<arr3[i].length; ++j)
arr3[i][j]= i+j;
}
for(int i=0; i<arr3.length; ++i) {
for(int j=0; j<arr3[i].length; ++j)
System.out.print(arr3[i][j]);
System.out.print("\n");
}
}
}
2018.9.28 典型for循环特殊理解及其二维数组的理解的更多相关文章
- 如何用一个for循环打印出一个二维数组
思路分析: 二维数组在内存中默认是按照行存储的,比如一个二维数组{{1,2,3,},{4,5,6}},它在内存中存储的顺序就是1.2.3.4.5.6,也就是说,对于这6个数组元素,按照从0到5给它们编 ...
- php数组函数array_column:不用循环就能提取多维数组内容
作为一个有多年PHP开发经验的码农,我也是前段时间才发现PHP处理数组有这么好用的函数, 至此之前,我处理数组的数据基本都是使用循环,记录一下两个函数的用法: array_column() 函数 返回 ...
- c语言中指针和多维数组的理解
1.复习指针和数组之间的特殊关系:不带方括号的数组名是一个指针,指向该数组的第一个元素. 2.多维数组: ][];//声明一个二维数组作为举例 a.理解方式1:可以将数组看成行和列构成,即理解成2行4 ...
- 深入理解C/C++二维数组
深入理解C/C++二维数组 前言 本来以为自己对二维数组的理解还可以,没感觉有什么,但是今天小伙伴问了一个问题感觉迷惑了好久,于是决定细致的记录一下,一步一步的探究各种关于二维数组的问题,巩固基础. ...
- Insider Dev Tour(2018.06.28)
时间:2018.06.28地点:北京金茂万丽酒店
- 2018.09.28 hdu5435A serious math problem(数位dp)
传送门 数位dp卡常题. 写了一发dfs版本的发现过不了233. 于是赶紧转循环版本. 预处理出f数组. f[i][j]f[i][j]f[i][j]表示前i位数异或和为j的方案数. 然后每次直接数位d ...
- C语言教学--二维数组和指针的理解
对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...
- 关于c语言二维数组与指针的个人理解及处理办法。
相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...
- 数组的定义和使用,理解多维数组和Array类
数组的作用 在执行程序的过程中,通常会需要存储大量数据.如果只有少量数据,那么通过声明变量,存储到变量中即可.但当我们的数据是20个.40个甚至是100以上时,就意味着需要声明很多变量,这是不现实的, ...
随机推荐
- TabLayout实现顶部导航栏(1)
TabLayout是android.support.design里的一个控件,使用它可以很方便的做出顶部导航和底部导航.类似于这样的,能设置选中时字体的颜色和选中时的图片. 首先我们在 build.g ...
- API-Framework 前后端分离
- 阿里云Tomcat运行shutdown.sh命令关闭时遇到的问题
1.安装完成jdk之后,然后安装tomcat. tomcat安装成功后,进入tomcat的安装目录,找到bin所在的目录. 使用./startup.sh,启动tomcat; 使用./shutdown. ...
- 腾讯刘金明:腾讯云 EB 级对象存储架构深度剖析及实践
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 演讲者:刘金明 腾讯云存储业务中心副总监 背景:5月23-24日,以"焕启"为主题的腾讯"云+未来" ...
- React.js 小书 Lesson16 - 实战分析:评论功能(三)
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson16 转载请注明出处,保留原文链接和作者信息. 接下来的代码比较顺理成章了.修改 Commen ...
- 在 UWP 应用中创建、使用、调试 App Service (应用服务)
在 Windows 10 中微软为 UWP 引入了 App Service (即应用服务)这一新特性用以提供应用间交互功能.提供 App Service 的应用能够接收来自其它应用传入的参数进行处理后 ...
- js Base64与字符串互转
1.base64加密 在页面中引入base64.js文件,调用方法为: <!DOCTYPE HTML> <html> <head> <meta charset ...
- Junit入门教程
做开发的时候,完成一个接口.方法.函数或者功能等,需要测试,是否有bug,有逻辑错误.这里有两种方案测试 1. 在main中写测试方法 2. 使用开源框架,这里使用的junit main写测试方法优点 ...
- 重构指南 - 引入参数对象(Introduce Parameter Object)
当一个方法的参数超过3个以上,就可以考虑将参数封装成一个对象.将参数封装成对象后提高了代码的可读性,并且该参数对象也可以供多个方法调用,以后如果增加删除参数,方法本身不需要修改,只需要修改参数对象就可 ...
- 微服务学习笔记二:Eureka服务注册发现
Eureka服务注册发现 服务发现:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移. 1. Service Discovery: Eureka S ...