增强for循环是从 jdk5引入的。
##方法
方法的重载
结束语句 break 和 continue
1、break在任何循环语句的主题部分,均可用break控制循环的流程。break用于强行退出循环,
不执行循环中剩余的语句。(break语句也在switch语句中使用)
2、contiune 语句用在循环语句体重,用于终止某次循环过程,即跳过循环中尚未执行的语句。
接着进行下一次是否执行循环的判定。
3、关于goto关键字
(1)goto关键字很早就在程序设计语言中出现,尽管goto仍是Java的一个保留字,
但并未在语言中得到正式使用;java没有goto,然而,在break和continue这两个
关键字的身上,我们仍然能看出一些goto的影子—带标签的break和continue。
(2)“标签”是指后面跟一个冒号的标识符,例如: label;
(3)对于Java 来说唯一用到标签的地方是在循环语句之前,而在循环之前设置标签的唯一
理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,
但若随同标签使用,它们就会中断到存在标签的地方。
//打印101~150之间所有的质数
//指数 是指在大于1的自然数中,除了1和它本身以外不在有其他因数的自然数。
//打印三角形 五行
for (int i = 0; i < 5; i++) {
for (int y = 5;y>=i;y--){
System.out.print(" ");
}
for (int z = 0;z<=i;z++){
System.out.print("*");
}
for (int k = 0;k<i;k++){
System.out.print("*");
}
System.out.println();
}
Java值传递 和 引用传递
####值传递:
在方法被调用时,实参通过形参把它的内容副本传入方法内部,
此时形参接收到的内容是实参值的一个拷贝,因此在方法内对形参的任何操作,
都仅仅是对这个副本的操作,不影响原始值的内容。
####引用传递:
”引用”也就是指向真实内容的地址值,在方法调用时,
实参的地址通过方法调用被传递给相应的形参,在方法体内,
形参和实参指向同一块内存地址,对形参的操作会影响的真实内容。
引用传递本质上就是值传递,将引用变量的值传递给形参,因为引用变量的值存放的是地址值,
所以当地址值传递给形参后,形参和实参指向同一块内存区域。
Java它是值传递!!!
参考链接:https://www.cnblogs.com/wugongzi/p/11297638.html
阶乘
2! 2 * 1
3! 3 * 2 * 1
4! 4 * 3 * 2 *1
5! 5 * 4 * 3 * 2 * 1
public class Demo05 {
public static void main(String[] args) {
int factorial = factorial(5);
System.out.println(factorial);
}
public static int factorial(int i){
if (i ==1){
return 1;
}
int factorial = factorial(i - 1);
return i*factorial;
}
}
命令行传递参数
注意: 编译的时候不用带上包名。
但是运行的时候,要加上包名。
![](https://kuangstudy.oss-cn-beijing.aliyuncs.com/bbs/2021/08/20/kuangstudy6d47a2c9-01e3-4a14-a138-0cb91a5f665b.png)
数组
1、数组概述
2、数组声明创建
3、数组使用
4、多维数组
5、Arrays类
6、稀疏数组
数组的定义
(1)数组是相同类型的有序集合。
(2)数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
(3)其中,每一个数据称作一个数组元素,每一个数组元素可以通过一个下标来访问它们。
注意:下标是从 0 开始的。
数组声明创建
数组的四个基本特点
(1)其长度是确定的。数组一旦被创建,它的大小就是不可改变的。
(2)其元素必须是相同类型,不允许出现混合类型。
(3)数组中的元素可以是任何类型,包括基本类型和引用类型
(4)数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
(5)数组本身就是对象,Java中对象是在堆中的。因此数组无论保存原始类型还是其他对象类型
(6)数组对象本身是在堆中的。
获取数组的长度
arr.length
常见异常
下标越界异常
java.lang.ArrayIndexOutOfBoundsException: 5
只要是new 都是存放在堆中的。
声明数组内存图
数组使用
(1)For-Each 循环
(2)数组作方法入参
(3)数组作返回值
//静态初始化
int[] arr = {1,2,3,6,7};
//动态初始化 有默认初始化
int[] arr02 = new int[5];
arr02[2] = 10;
//打印 arr 数组 所有元素
for (int i = 0; i <arr.length; i++) {
System.out.println(arr[i]);
}
//计算所有arr 元素的 和
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum +=arr[i];
}
System.out.println("和:" + sum);
//查找 arr 中最大元素
int max = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max){
max = arr[i];
}
}
System.out.println("最大为:" + max);
// idea 快捷键 arr.for
for (int i : arr) {
System.out.println(i);
}
//调用打印数组方法
text(arr);
flip(arr);
}
//数组作为方法参数
public static void text(int[] i){
for (int i1 : i) {
System.out.print(i1 + " ");
}
}
// 2 4 5 6
// 6 5 4 2
//数组反转
//反转
public static void flip(int[] y){
for (int i = 0;i<y.length;i++){
if (i<=y.length/2){
int a = y[i];
y[i] = y[y.length-1-i];
y[y.length-1-i] = a;
}
}
System.out.println();
for (int i : y) {
System.out.print(i + " ");
}
}
二维数组
//静态赋值
int[][] arr = {{1,2},{2,4},{5,6}};
//动态赋值
int[][] arr02 = new int[3][2];
for (int i = 0;i<arr.length;i++){
for (int y = 0;y<arr[i].length;y++){
System.out.println(arr[i][y]);
}
}
小练习
//写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现。
public class Demo06 {
public static void main(String[] args) {
while (true){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要计算的第一个数字");
double v = 0;
String next = "";
double v1 = 0;
if (scanner.hasNextDouble()){
v = scanner.nextDouble();
}
System.out.println("请输入运算符号:+,-,*,/,%");
if (scanner.hasNext()){
next = scanner.next();
}
System.out.println("请输入要计算的第二个数字");
if (scanner.hasNextDouble()){
v1 = scanner.nextDouble();
}
double calculation = calculation(v, next, v1);
System.out.println("计算结果为:"+calculation);
System.out.println("--------------");
}
}
public static double calculation(double i,String s,double y){
double sum = 0;
switch (s){
case "+":
sum = i+y;
break;
case "-":
sum = i-y;
break;
case "*":
sum = i*y;
break;
case "/":
sum = i/y;
break;
case "%":
sum = i%y;
break;
default:
System.out.println("输入有误请重新输入");
sum = 0;
break;
}
return sum;
}
}
总结
愿中国青年都摆脱冷气,只是向上走,不必听自暴自弃流的话,能做事的做事,能发声的发声,有一份热,发一分光,
就令萤火一般。也可以在黑暗里发一点光,不必等候炬火,此后如尽没有炬火。我便是唯一的光。
–鲁迅
本片参考借鉴于: kuangstudy