Java基础_流程控制,数组,方法

流程控制

顺序结构

1.空语句

;// 其实就是一个分号

2.表达式语句

(a+b)*2是算数表达式,c>d是布尔表达式,表达式能够被Java编译器识别,但是由于没有对程序任何操作,因此单独存在对程序本身无任何意义。

3.复合语句

Java语言的复合语句与C语言及其它语言相同,以整个块区为单元的语句,所以又称为块语句,复合语句右开括号{开始,闭括号}结束;复合语句为局部变量创建了一个作用域,该局部变量在作用域能够被使用,在作用域外将会出现错误。

分支结构

1.if语句

if(布尔表达式){
    语句块
}else if(布尔表达式){
    语句块
}else{
    语句
}

2.switch语句

switch(表达式){
        case 常量值1:
             语句块1
           	 [break;]
        ...
        case 常量值n:
             语句块n
             [break;]
        default:
             语句块n+1
             [break;] 
}                 

switch语句中的表达式的值必须是整型,字符型,字符串型或枚举类型,常量值1~n+1的数据类型必须与表达式的值的类型相同

循环结构

1.while语句

while(条件表达式){
    语句块
}

2.do-while语句

do{
    语句块
}while(条件表达式);

3.for语句

for(表达式1;表达式2;表达式3){
    语句块
}

4.foreach循环

foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句

for(元素类型 i : 遍历对象){
    语句块
}

5.循环控制

break:跳出当前循环体,从而中断当前循环

continue:跳过本次循环,执行循环的增量部分,然后进行条件判断

return:跳出当前方法

数组

数组是指具有相同数据类型的一组数据的集合

一维数组

创建1:先声明,再用new关键字进行内存分配

声明:
type arrayname[];									int arr[];
type[] arrayname;									int[] arr;
内存分配:
arrayname = new type[length];	 					arr = new int[5];	

创建2:声明的同时分配内存

type[] arrayname = new type[length]; 				int[] arr = new int[5]; 

初始化

type[] arrayname = new type[]{value1,...,valuen};	int[] arr = new int[]{1,2,3,4};
type[] arrayname = {value1,...,valuen};				int[] arr2 =  {1,2,3,4};

二维数组

一维数组中的各个元素仍然是一个数组,那么它就是二维数组;二维数组常用于表示表,第一个下标表示元素所在的行,第二个下标表示元素所在的列。

创建1:先声明,再用new关键字进行内存分配

声明:
type arrayname[][]; 								int arr[][];
type[][] arrayname;		 				 			int[][] arr;
内存分配:
arrayname = new type[length][length]; 				arr = new int[2][4];

arrayname = new type[length][];		 				arr = new int[2][];
arrayname[index] = new type[length];   				arr[0] = new int[4]; 
										   			arr[1] = new int[4];

创建2:声明的同时分配内存

type[][] arrayname = new type[length][length]; 		int[][] arr = new int[2][4];

初始化:

type[][] arrayname = {value1,...,valuen};			int[][] arr = {{1,2},{3,4}};

Arrays工具类

方法参数作用示例
fill(int[] a,int fromIndex,int toIndex,int value)a:要进行元素替换的数组
fromIndex:第一个元素索引(包含)
toIndex:最后一个元素索引(不包括)
value:要存储到数组中所有元素的值
将指定的int值分配给int型数组指定范围中的每个元素Arrays.fill(arr,8);
sort(object)object:进行排序的数组名称对任意类型的数组进行升序排序(按字典编排顺序,数字在字母前,大写字母在小写字母前)Arrays.sort(arr);
copyOf(arr,int newlength)
copyOfRange(arr,int fromIndex,int toIndex)
arr:要进行复制的数组
newlength:新数组的长度
复制数组至指定长度(newlength>oldlength:整型0填充,但是char用null填充;newlength<oldlength:从第一个元素开始截取)Arrays.copyOf(arr,5);
binarySearch(Object[] a,int fromIndex,int toIndex,Object key)a:搜索的数组
key:搜索的值
使用二分搜索法来搜索指定数组,以获得指定对象,返回搜索元素的索引值Arrays.binarySearch(arr,0,2,“a”)

排序算法

1.冒泡排序

int temp;
for(int i=1;i<array.length;i++){
    //比较相邻两个元素,较大的元素往后冒泡
    for(int j=0;j<array.length-1;j++){
        if(array[j]>array[j+1]){
            temp = array[j];  
            array[j] = array[j+1];
            array[j+1] = temp;
        }
    }
}

2.直接选择排序

for(int i=1;i<array.length;i++){
    int index = 0;
    for(int j=1;j<array.length-1;j++){
        if(array[j]>array[index]){
            index = j;
        }
    }
    //交换在位置array.length-i和index(最大值)上的两个数
    int temp = array[array.length-i];
    array[array.length-i] = array[index];
    array[index] = temp;
}

3.反转排序

int temp;
for(int i=0;i<array.length/2;i++){
    temp = array[i];
    array[i] = array[array.length-1-i];
    array[array.length-1-i] = temp;
}

方法

定义与调用

完整的方法通常包括方法名称、方法主体、方法参数和方法返回值类型

方法返回值:方法体中用return语句指明要返回的值(表达式),可以是常量,变量,对象,返回的数据类型必须与声明成员方法时给出的返回值类型一致

方法参数:形参是定义方法时参数列表中出现的参数,实参是调用方法时为方法传递的参数

方法重载

两同一不同:同一个类,同一个方法,不同的列表参数。方法的其它部分:返回值类型,修饰符等,与方法重载没有任何关系

可变参数

/*paramList表示方法的固定参数列表
paramType表示可变参数的类型
...表示声明可变参数的标识
paramName表示可变参数名称*/
methodName({paramList},paramType…paramName)
public void eat(String...foods){}
eat("米饭","馒头","面条");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值