黑马程序员技术交流社区
标题: 格式总结 [打印本页]
作者: szz12345 时间: 2017-12-27 19:43
标题: 格式总结
快乐学期的时间总是短暂的,学习了两周。每天都有新的知识让我们来理解和接受。
接下来就让我这位新手小白来目前位置的格式总结下。
什么是变量?
在程序执行的过程中,在某个范围内其值可以发生改变的量
变量的定义格式
数据类型 变量名 = 变量值;
举例: 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虚拟机会通过参数列表的不同来区分同名的方法。
方法的参数如果是基本数据类型:形式参数的改变不影响实际参数。
形式参数:用于接受实际参数的变量(方法的参数列表中的变量)
实际参数:实际参与运算的变量 (调用方法时候传进去的)
如果参数是引用数据类型:
那么形式参数的改变直接影响实际参数
作者: 小浙姐姐 时间: 2017-12-30 17:47
总结得很用心,希望私下一直保持这种好习惯。就业班加油,但愿早日拿到想要的offer
作者: szz12345 时间: 2017-12-31 13:04
谢谢小姐姐,我会加油的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |