date:2020/2/13
循环语句 while、do while、for
while循环
int a = 1;
int n = 0;
while (a <= 5) {
n = n + a;
a++;
}
System.out.println(n);
输出:15
do while循环
int a = 1;
int n = 0;
do {
n = n + a;
a++;
} while (a <= 5);
System.out.println(n);
输出:15
for循环
int n = 0;
for (int a = 1; n <= 5; a++) {
n = n + a;
}
System.out.println(n);
输出:15
循环控制语句 continue、break
continue
continue:终止本次循环,继续下次循环
for (int a = 0; a <= 5; a++) {
if (a == 3) {
continue;
}
System.out.print(a + "、");
}
输出:0、1、2、4、5、
break
break:结束循环,但还会执行循环后的语句
for (int a = 1; a <= 5; a++) {
if (a == 3) {
break;
}
System.out.print(a + "、");
}
输出:1、2、
return
return:返回方法,整个方法不执行了
for (int a = 1; a <= 5; a++) {
if (a == 3) {
break/return; 二选一执行程序
}
System.out.print(a + "、");
}
System.out.println("HelloWorld");
break输出:1、2、HelloWorld
return输出:1、2、
控制跳转语句标号
主要是用来在多层循环里跳出来的,只要在for前标号就行了
a: for (int a = 1; a <= 5; a++) {
b: for (int b = 1; b <= 5; b++) {
break a;
}
}
按值传递
基本数据类型是分布在栈上的
引用数据类型是分布在堆上的
基本数据类型:
没有涉及到new,所以没有在堆里面创建内存,
在栈里面操作后弹栈,值传递不会改变值本身,
所以才会出现不能互换变量的现象
引用数据类型:
涉及到new,在堆里面创建内存,
可以通过地址再访问堆里面的内容
Q:java到底是按值传递还是地址传递?
A:只有值传递,因为地址也是值(java之父,James gaosilin说的)
方法
方法(Method,在很多语言中也被称为函数)
指的是一段可以被重复调用的代码块
方法重载
方法重载是采用技术形式实现方法名称可重用设计的一种技术手段
其最主要的特点:
方法名称相同,参数的类型或个数不同
方法递归调用
递归调用是一种特殊的方法嵌套调用形式
指的是方法自己调用自己的形式
数组
数组是指一组相关变量的集合
一维数组
int data [] = new int [] {11, 22, 33}; //数组静态初始化
for (int a = 0; a < data.length; a++) { //for循环输出数组
System.out.print(data[a] + "、"); //根据索引获取数组内容
}
输出:11、22、33、
foreach输出
为了简化数组与集合数据的输出问题,
提供有foreach结构(加强型 for循环)
int data[] = new int[] {1, 2, 3, 4, 5}; //数组静态初始化
for(int temp : data) { //自动循环,将data数组每一个内容交给temp
System.out.print(temp + "、"); //数组每个元素会保存在temp变量中
}
输出:1、2、3、4、5、
二维数组
int data[][] = new int[][] { {1,2,3}, {4,5,}, {6} }; //定义二维数组
for (int temp [] : data) { //外层循环获取每一行数组
for (int num : temp) { //内层循环获取数组内容
System.out.print(num + "、"); //输出数组内容
}
System.out.println(); //换行
}
输出:
1、2、3、
4、5、
6、