快乐学期的时间总是短暂的,学习了两周。每天都有新的知识让我们来理解和接受。 接下来就让我这位新手小白来目前位置的格式总结下。 什么是变量? 在程序执行的过程中,在某个范围内其值可以发生改变的量 变量的定义格式 数据类型 变量名 = 变量值; 举例: int i = 10; Int:数据类型; I: 变量名; 10:变量值; ------------------------------------------------------------------------------- 键盘录入: 为了提高程序的灵活性,我们就把数据改进为键盘录入。 如何实现键盘录入数据呢?目前我们只能使用JDK提供的类Scanner 如何时间Scanner获取键盘录入数据呢?如下的步骤 使用步骤: A.导包 importjava.util.Scanner; 在一个类中顺序:package> import > class B.创建键盘录入对象 Scannersc = new Scanner(System.in); C.接收数据 inti = sc.nextInt(); ------------------------------------------------------------------------------- 选择流程控制语句 ①if格式1: if(布尔类型表达式、变量、常量){ 语句体; } 执行流程: A.首先计算关系表达式的值,看是true还是false B.如果是true,就执行语句体 C.如果是false,就不执行语句体 ②if格式2: if(关系表达式){ 语句体1; }else{ 语句体2; } 执行流程: A首先计算关系表达式的值,看是true还是false B如果是true,就执行语句体1 C如果是false,就执行语句体2 ③if格式3: if(关系表达式1){ 语句体1; }else if(关系表达式2){ 语句体2; } ... else{ 语句体n+1 } 执行流程: A计算关系表达式1的值,看是true还是false B如果是true,就执行语句体1 C如果是false,就继续计算关系表达式2的值,看是true还是false D如果是true,就执行语句体2 E如果是false,就继续计算关系表达式3... F当所有的关系表达式都是false的时候就执行语句体n+1 ------------------------------------------------------------------------------- switch语句格式: switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 格式解释: 表达式:byte,short,int,char JDK5之后可以枚举 JDK7以后可以是字符串 case:就是要和表达式进行比较的值 break:表示中断,结束的意思。 default:表示所有的情况都不匹配的时候,就执行语句体n+1。和if语句的else相似。 执行流程: A:计算出表达式的值 B:拿计算出来的值和case后面的值依次比较,一旦有对应的值,就执行该处的语句,在执行过程中,遇到 break,就结束。 C:如果所有的case都不匹配,就会执行default控制的语句,然后结束。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 循环结构 for循环语句的格式: for(初始化语句;判断条件语句;控制条件语句){ 循环语句; } 执行流程: A执行初始化语句 B执行判断条件语句,看其结果是true还是false 如果是false,就结束循环 如果是true,就继续执行 C执行循环体语句 D执行控制条件语句 E回到B继续‘’ --------------------------------------------------------------------------- while循环语句的格式: while(判断条件语句){ 循环体语句; } 扩展格式(效果不如for): 初始化语句; while(判断条件语句){ 循环体语句; 控制条件语句; } ------------------------------------------------------------------------------- do...while循环语句 循环格式: do{ 循环体语句; }while(判断条件语句); 扩展格式: 初始化语句; do{ 循环体语句; 控制条件语句; }while(判断条件语句); 执行流程: A执行初始化语句 B执行循环体语句 C执行控制条件语句 D执行判断条件语句,看是true还是false 如果是false,就结束循环 如果是true,回到B继续 三种循环的区别: 虽然三种循环可以做相同的事情,但是它们还是有区别的: A:do...while循环体至少执行一次循环体 B:for和while循环体必须判断条件成立才可以执行循环体 ------------------------------------------------------------------------------- for循环和while循环区别 for循环的初始化变量,在循环结束后,不可以被访问。而while循环初始化变量可以继续被使用 一般情况我们都使用for来循环。 While使用的情况:如果循环的次数不确定,或者可能一直循环下去,就是用while循环,一般死循环用的都是while循环 一般不用do...while循环。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 跳转控制语句 break:中断的意思 使用场景: Aswitch语句中 B循环中 注意: 离开使用场景没有意义的 ------------------------------------------------------------------------------- continue:继续的意思 使用场景: 循环中 注意: 离开使用场景没有意义的 作用: 结束一次循环,继续下一次循环。 区别: break:退出循环,结束整个循环 continue:结束一次循环,继续下一次循环 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Random 随机数类: Random和Scanner相似。 Random用于产生随机数 使用步骤: A:导包 import java.util.Random; B:创建对象 Random r = new Random(); C:获取随机数 int numer = r.nextInt(10); 获取范围:[0,10) 包括0,不包括10 如果要产生一个随机数范围为:[n,m] nextInt(m-n+1)+n; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 数组: 数组是存储多个元素(变量)的东西 这个多个变量的数据类型要一致 定义格式: A数据类型[] 数组名; int[] arr; (推荐) B数据类型 数组名[]; intarr[]; 数组初始化: A所谓的初始化,就是为数组开辟内存空间,并为数组中的每个元素赋予初始化值 B两种实现数组的初始化 a动态初始化 只给出长度,由系统给出初始化值 b静态初始化 给出初始化值,由系统决定长度 动态初始化: 数据类型[] 数组名 = new 数据类型[数组长度]; 访问格式:数组名[索引] 静态初始化: 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3....}; 简化格式: 数据类型[] 数组名 = {元素1,元素2,元素3,...}; (比较常用到的格式) 数组遍历: 依次操作数组中的每个元素 for(int i =0;i<arr.length;i++){} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 二维数组: 定义格式 数据类型[][] 数组名; 数据类型 数组名[][]; 不推荐 数据类型[] 数组名[]; 不推荐 初始化方式 数据类型[][] 数组名 = new 数据类型[m][n]; 数据类型[][] 数组名 = new 数据类型[][]{{元素…},{元素…},{元素…}}; 简化版格式:数据类型[][] 数组名 = {{元素…},{元素…},{元素…}}; A:动态初始化 数据类型[][] 数组名 = new 数据类型[m][n]; m表示这个二维数组有多少个一维数组 n表示每一个一维数组的元素有多少个 B:静态初始化 数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...},{元素...},...}; 简化格式: 数据类型[][] 数组名 = {{元素...},{元素...},{元素...},...}; 二维数组也可以理解成一个以为数组,然而每个一维数组在二维数组中成为了索引中的内容,所以二维数组是有多个一维数组拼接而成。理解一维数组,二维数组自然会明白。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 方法的定义格式: 就是完成特定功能的代码块 定义格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名1,...){ 方法体; return 返回值; } 格式解释: A修饰符 目前记住public static B返回值类型 用于限定返回值的数据类型 C方法名 为了方便我们调用方法的名字 D:参数类型 用于接收调用方法时传入的数据的类型 E:参数名 用于接收调用方法时传入的数据的变量 F:方法体 完成功能的代码 G:return结束方法,把返回值带给调用者 方法的两个明确: A:返回值类型 明确功能结果的数据类型 B:参数列表 明确有几个参数,以及参数的类型 有明确返回值的方法的调用: A:单独调用,没有什么意义。 B:输出调用,有意义,但是不够好,因为我可能需要对求和的结果进行进一步的操作 C:赋值调用 如果一个方法没有明确的返回值类型,java提供了void进行修饰。 方法重载:在同一个类中,出现了方法名相同的情况。 方法重载特点: 在同一个类中,方法名相同,参数不同。与返回值无关。 参数列表不同: 参数的个数不同 参数对应的数据类型不同 判断参数列表是否相同的小技巧: 把方法每个参数的数据类型拼在一起组成一个字符串, 字符串相同则不是重载,不同则算重载。 注意: 在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法。 方法的参数如果是基本数据类型:形式参数的改变不影响实际参数。 形式参数:用于接受实际参数的变量(方法的参数列表中的变量) 实际参数:实际参与运算的变量 (调用方法时候传进去的) 如果参数是引用数据类型: 那么形式参数的改变直接影响实际参数
|