java基础知识--循环,数组,方法

一、java的三大循环语句

1. 顺序控制
依次执行代码。
2. 条件控制
int a = 0;
a. 目的 : 对程序执行,一些不可预知的流程,进行一个预先判断.
b. 条件:
条件具有真假的特性。而且只可能为真,或者为假。
c. java条件控制有四种手段:

(1)if语句
结构:

if(条件){
//实现我们的逻辑
}

(2)if...else语句
结构:

if(条件){
//实现我们的逻辑
}else{
//实现我们的逻辑
}

else后面之间跟我们的{//代码}


(3)if(条件)...else if(条件)...(接N个)...else


注意: a.else if(条件): 条件的约束,和我们前面说的if(条件),俩者是等价的.
      b.else if 可以有多个
 c.else 可以省略掉的, 但是即使没有匹配所有条件,我们依然建议必须有else,来保证 语句的完整和可读性.
 d.如果满足条件只需要执行一行代码,{}也是可以省略的,但是不建议这么做.
 
(4)switch case


结构:


switch(判断值){
case 值1:
break;
case 值2:
break;
.......
case 值n:
break;

default:
}

条件控制语句来说:
彼此可以嵌套使用的.

3. 表达式的类型:
int a = 5;
a*3 (结果15)
表达式的输出类型为表达式计算结果的类型.

------------------

double num = 1.5;
num * 4 (6.0, 表达式最终被当做的类型就是double类型)

4.循环控制


a. while 循环


结构:
while(循环条件){
//循环实现的代码
}


b. do .. while循环
结构:


do{
//实现的代码
}while(循环的条件);


c. for 循环
使用率最高的;


结构:


for(循环变量初始化 ;循环条件判断; 循环变量的改变){
//循环需要实现的逻辑
}


d. foreach 循环(不是一个常规的java提供的循环的方式,他只是java提供的一种语法糖)
foreach: 对一种循环方式的命名,常规循环的简化方式. 
         语法糖: 针对基本的语法,提供了一种简化的实现方式.
 
补充知识点:


俩个关键字: 应用到循环控制中,continue的含义是跳出当次的循环,break的含义是跳出整个循环


continue:
在循环的代码体中,如果遇到continue, 则会跳出当次循环,循环体内continue之后的代码都不会执行,并且循环变量进行一次改变操作,
之后再次进行条件判断,如果满足条件,则进入循环,否则直接结束循环; 跳出的仅是continue外层直接包裹的循环.


break:
在循环的代码体中,如果遇到break,则会跳出本循环代码块,break后的代码不会执行。并且整个循环的过程结束。
break后退出的循环也是直接包围break的循环。

二、java数组

1.数组定义: 用来一次性保存多个相同类型元素的这样一种数据结构.
2.维度上分:

一维数组,多维数组.

一维数组:

3.声明:
类型 [] 数组变量名称
int [] arr;
或者
int arr[];
俩种形式都可以,而且没有任何的区别,不过建议我们采取第一种方式.
4.初始化:
动态初始化:
我们在定义一个数组和对数组进行赋值的操作,我们分开来执行。
静态初始化:
我们在定义一个数组的同时,进行数组的初始化
//动态初始化
int [] arr = new int[3];

arr[0] = 1;
arr[1] = 2;
arr[2] = 3;

//静态初始化
int []arr1 = new int[]{1,2,3};
int []arr2 = {1,2,3,4};

new:
用来初始化一个对象。

数组里面注意事项:
a. 数组长度一旦指定,是永远不可以改变的。
b. 数组保存的元素类型一旦指定,也是不可以改变,并且只能保存该类型的元素

5.length:
int a[] = new in[3];
int size = a.length;

6.数组元素的访问
arr[index]: index表示数组元素的索引,注意索引是从0到length-1.
arr[1]:访问第二个元素

index: 可以是常量,也可以是表达式。

二维数组:

声明:
类型 [][] 数组名称;
int [][] arr;

初始化:
a.动态初始化
int [][]arr = new int[3][];
b.静态初始化
int [][]arr = {{1,2,3},{2,3,4,5}};
length:
这个属性拿到二维数组的长度。


三、方法

(一)定义: 实现一个功能的代码片段的封装。

[修饰符...] 返回值类型 方法名称(形参的列表){
//方法中实现的逻辑
}

形参列表: 方法接收外部传入的数据的接收媒介.
返回值: 方法执行结束之后,返回的值的类型。
如果方法不需要返回任何的值,那么我们的方法返回类型写作void.
在方法里返回一个值,需要用到 return. 

形参列表:
当我们定义了一个方法之后,去调用方法的时候,一定要注意我们传递给方法的入参的类型和数量,一定要一一对应。

唯一确定一个方法:
关注点:
a.方法名是否一致
b.形参列表的所有参数类型和数量是否一致。 对于形参变量的命名,完全是没有关系的.
c.返回值的类型
  可以是基本类型,也可以是引用类型。
  
注意:

a.一旦明确指定了方法的返回类型(非void),那么一定要保证最终方法可以成功的返回我们对应的返回类型的数据.
b.关于void返回类型
如果我们不主动的添加return语句,在执行的时候,也会帮我们自动添加return.我们在实现void类型的方法的时候,主动添加一个
return也是没有问题。 

java预编译的特点.

方法参数的传递:
方法参数的传递来说,基本类型传递的是值。对于引用类型,传递的是引用.(传递的是地址)

(二). 构造方法(构造器)

1.类中特殊的方法,对于定义来讲,它的方法名必须和类名一模一样,并且不返回任何的值,主要不能添加void.
2.在new(创建一个对象的时候),一定会去调用它的构造方法。 但是如果我们没有自己添加自己定义的构造器的话,编译器会帮我们
  偷偷的添加一个默认的构造器:
  
  类名(){
  
  }
  
  如果我们主动添加一个默认的构造器,那么在创建对象的时候,通过new 类名(); 会调用我们自己添加的默认构造器.
  
3.当我们主动添加了一个包含参数列表的构造器,并且没有主动添加默认的构造器,则再通过new 类名(); 就会遇到编译问题.


(三) 方法重载 overload
 
1. 对于同名的方法,具有不相同的参数列表,我们在访问的时候,通过调用方法传入不同的参数列表,就可以找到我们特定的方法。

2. 当我们定义多个重载的方法的时候,在编译阶段的话,编译器可以根据我们方法形式参数数量以及类型来区别不同的方法,执行阶段可以
   根据我们调用的时候传入的参数列表, 仅仅拥有不同的返回值类型,是不被视为重载的。
   

你可能感兴趣的:(java基础知识--循环,数组,方法)