循环
for
适合循环次数明确的情况
for(int i=1;i<3;i++)
在for循环外,i不能再使用(因为在for循环条件控制语句的自增变量,归属于for循环的语法结构,在for循环结束后,就不能再次被访问到了)while则可以(while中,条件控制语句的自增变量不归属其语法结构)
while
do…whiile
先执行,再判断
跳转控制语句
跳过某次循环体内容的执行,结束本次循环——continue
终止循环——break
Random
这是0~9的随机数
若要1~100的随机数
则有
int x = r . nextInt(100)+1;
System . out . println ( x ) ;
猜数字小游戏
idea
数组
动态初始化
new 为数组申请内存空间
静态初始化(赋初值)
范例: int [ ] arr = { 1 , 2 , 3 } ;
java中的内存分配
- 栈内存:储存局部变量
定义在方法中的变量,例如:arr
使用完毕,立即消失
- 堆内存:储存new出来的内容(实体,对象)
数组在初始化时,会为存储空间添加默认值
整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:null
每一个new出来的东西都有一个地址值
使用完毕,会在垃圾回收器空闲时被回收
多个数组指向相同
如:int [ ] arr2 = arr
无论是将数组arr2的值修改还是修改数组arr的值,他们的值都被修改,即指向相同了
数组中常见小问题
- 索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题
如:int [ ] arr= new int [ 3 ] ;
arr[ 3 ]则不存在
- 空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
如:arr = null
再通过这个数组访问元素
- 数组常见操作
1. 遍历
即用循环来输出数组
2. 获取最值
方法概述
方法是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
注意:
方法必须先创建才可以使用,该过程称为方法定义
方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用
要调用的方法必须存在
(感觉有点像c语言中函数的定义与调用)
带参数方法的定义和调用
注意:
方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
方法定义时,多个参数之间使用逗号(,)分隔
注意:
方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错
形参与实参
形参:方法定义中的参数
如:int number
实参:方法调用中的参数
要么常量值,要么是变量名,如:number, 10
- 带返回值方法的定义和调用
注意:
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
注意:
方法的返回值通常会使用变量接受,否则该返回值将无意义
1. 保存了返回值
2. 直接输出
- 方法的注意事项:
方法不能嵌套定义
void如果要写return , 只能写return; ,即后面不能加数据
- 定义方法时,做到两个明确
明确返回值类型
明确参数
- 调用方法时
void类型的方法,直接调用即可
非void类型的方法,推荐用变量接受调用
方法重载
方法名相同,参数不同,在两者相同时,顺序可以不同
与返回值无关
在调用时,JAVA虚拟机会通过参数的不同来区分同名的方法
方法的参数传递
基本类型
对于基本数据类型的参数,形参的改变,不影响实参的值
引用类型
对于引用类型的参数,形式参数的改变,影响实际参数的值
区别:基本类型不进入堆内存中,因此不影响,而引用类型进入堆内存,因此形参改变,实参也改变
方法参数传递
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);
}
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
用于查看程序的执行流程,追踪程序执行过程来调试程序
注意事项:如果数据来自于键盘输入,一定要记住输入数据,不然就不能继续往下查看了。
导包
- 手动导包 import java.util.Scanner;
- 快捷键导包 Alt+Enter
- 自动导包 如:Scan写到一半,有提示,按回车
- ctrl+alt+l使代码格式化,更好看。
比较数组内容是否相同
查找
- 分析:键盘录入一个数据后,让这个数据和数组中的每一个元素进行比较,如果数据相等,返回该数据值对应的索引
- 但,若录入了一个数据中不存在的数据,这时无内容输出。在实际开发中,若对应的索引不存在,一般返回一个负数,而且常用-1来表示。