循环

for

适合循环次数明确的情况
for(int i=1;i<3;i++)
在for循环外,i不能再使用(因为在for循环条件控制语句的自增变量,归属于for循环的语法结构,在for循环结束后,就不能再次被访问到了)while则可以(while中,条件控制语句的自增变量不归属其语法结构)

while

先判断,再执行。
比较适合循环次数不明确的情况

do…whiile

先执行,再判断

跳转控制语句

跳过某次循环体内容的执行,结束本次循环——continue
终止循环——break

Random

image.pngimage.png这是0~9的随机数
若要1~100的随机数
则有
int x = r . nextInt(100)+1;
System . out . println ( x ) ;

猜数字小游戏

image.pngimage.png

idea

image.pngimage.png

数组

image.png

动态初始化

image.png
new 为数组申请内存空间

静态初始化(赋初值)

image.png
image.png
范例: int [ ] arr = { 1 , 2 , 3 } ;

image.png

java中的内存分配

  • 栈内存:储存局部变量

定义在方法中的变量,例如:arr
使用完毕,立即消失

  • 堆内存:储存new出来的内容(实体,对象)

数组在初始化时,会为存储空间添加默认值
整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:null
每一个new出来的东西都有一个地址值
使用完毕,会在垃圾回收器空闲时被回收
image.pngimage.png
多个数组指向相同
如:int [ ] arr2 = arr
无论是将数组arr2的值修改还是修改数组arr的值,他们的值都被修改,即指向相同

数组中常见小问题

  1. 索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题

如:int [ ] arr= new int [ 3 ] ;
arr[ 3 ]则不存在

  1. 空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常

如:arr = null
再通过这个数组访问元素

  1. - 数组常见操作
  2. 1. 遍历

image.png
image.png
即用循环来输出数组

  1. 2. 获取最值

方法概述

方法是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
注意:
方法必须先创建才可以使用,该过程称为方法定义
方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用

image.png

image.png要调用的方法必须存在
image.png
(感觉有点像c语言中函数的定义与调用)

带参数方法的定义和调用

image.png
注意:
方法定义时,参数中的数据类型变量名都不能缺少,缺少任意一个程序将报错
方法定义时,多个参数之间使用逗号(,)分隔

image.png
注意:
方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错

image.png

形参与实参

形参:方法定义中的参数
如:int number
实参:方法调用中的参数
要么常量值,要么是变量名,如:number, 10

  • 带返回值方法的定义和调用

image.png
注意:
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错

image.png
注意:
方法的返回值通常会使用变量接受,否则该返回值将无意义
image.png

image.png

  1. 1. 保存了返回值
  2. 2. 直接输出
  3. - 方法的注意事项:

方法不能嵌套定义
void如果要写return , 只能写return; ,即后面不能加数据

image.png

  • 定义方法时,做到两个明确

明确返回值类型
明确参数

  • 调用方法时

void类型的方法,直接调用即可
非void类型的方法,推荐用变量接受调用

方法重载

image.png
方法名相同,参数不同,在两者相同时,顺序可以不同
image.png
与返回值无关
在调用时,JAVA虚拟机会通过参数的不同来区分同名的方法
image.png

方法的参数传递

基本类型
对于基本数据类型的参数,形参的改变,不影响实参的值
image.png
引用类型
对于引用类型的参数,形式参数的改变,影响实际参数的值
image.png
区别:基本类型不进入堆内存中,因此不影响,而引用类型进入堆内存,因此形参改变,实参也改变

方法参数传递

System . out . println ( “ 内容 “ ) ; 输出内容并换行
System . out . print ( “ 内容 “ ) ; 输出内容不换行
System . out . println ( ) ; 起到换行作用

  • 定义一个方法:

两个明确:
返回值类型:如:void
参数:如:int[ ] arr
public class MethodTest01 {
public static void main(String[ ] args){
int [ ] arr = {11,222,33,44,55};
printArray(arr);
}

  1. public static void printArray(int[ ] arr){<br /> System.out.print("[");<br /> for(int x=0;x<arr.length;x++){<br /> if(x==arr.length-1){<br /> System.out.print(arr[x]);<br /> } else {<br /> System.out.print(arr[x]+",");<br /> }<br /> }<br /> System.out.print("]");<br /> }<br /> }

Debug

用于查看程序的执行流程,追踪程序执行过程来调试程序
注意事项:如果数据来自于键盘输入,一定要记住输入数据,不然就不能继续往下查看了。

导包

  1. 手动导包 import java.util.Scanner;
  2. 快捷键导包 Alt+Enter
  3. 自动导包 如:Scan写到一半,有提示,按回车
  • ctrl+alt+l使代码格式化,更好看。

比较数组内容是否相同
image.png

查找

  • 分析:键盘录入一个数据后,让这个数据和数组中的每一个元素进行比较,如果数据相等,返回该数据值对应的索引
  • 但,若录入了一个数据中不存在的数据,这时无内容输出。在实际开发中,若对应的索引不存在,一般返回一个负数,而且常用-1来表示