黑马程序员_Java入门及基础语法下

来源:互联网 发布:三星电视遥控器软件 编辑:程序博客网 时间:2024/05/13 11:46

------- android培训、java培训、期待与您交流! ----------

循环结构

组成:

初始化语句:

一条或者多条语句,这些语句完成一些初始化操作。

判断条件语句:

这是一个boolean 表达式,这个表达式循环体能决定是否执行。

循环体语句:

这个部分是循环体语句,也就是我们要多次做的事情。

控制条件语句:

这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

1.for循环

for循环语句格式:

for(初始化语句;判断条件语句;控制条件语句) {

         循环体语句;

    }

注意事项:

判断条件语句的结果是一个boolean类型。

循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。

一般来说:有左大括号就没有分号,有分号就没有左大括号。

示例代码:

求出1-10之间数据之和class ForDemo{public static void main(String[] args){//定义变量int sum =0;//循环获取数据for (int x=1; x<=10; x++){//相加 sum += x; }System.out.println("1-10的和为:"+ sum);}}

2.while循环

while循环语句格式:

基本格式

   while(判断条件语句) {

         循环体语句;

   }

扩展格式

   初始化语句;

   while(判断条件语句) {

         循环体语句;

         控制条件语句;

    }

示例代码:

输出十次 HelloWorldclass WhileDemo{public static void main(String[] args){//初始化语句int x =0;//判断条件语句while (x<10){//循环体System.out.println("HelloWorld");//控制条件语句x++;}

3.do...while循环

dowhile循环语句格式:

基本格式

   do {

         循环体语句;

   }while(判断条件语句);

扩展格式

   初始化语句;

   do {

         循环体语句;

         控制条件语句;

    } while(判断条件语句);

示例代码:

输出10次HelloWorldclass DoWhileDemo{public static void main(String[] args){//初始化语句int x = 10;//do...whiledo{//循环体语句;System.out.println("HelloWorld ");//控制条件语句;x++;}//判断条件语句while (x<10);System.out.println();}}

三种循环的区别:do...while循环至少执行一次循环体,forwhile必须先判断条件是否是true,然后后才能决定是否执行循环体。


控制跳转语句

1.break:中断的意思

A:用在循环和switch语句中,离开此应用场景无意义。

B:作用

跳出单层循环

跳出多层循环,需要标签语句的配合

2.continue:继续

A:用在循环中,离开此应用场景无意义。

B:作用

跳出单层循环的一次,可以继续下一次

3.return:返回

A:用于结束方法的,后面还会在继续讲解和使用。

B:一旦遇到return,程序就不会在继续往后执行。

 

方法

方法就是完成特定功能的代码块,在很多语言里面都有函数的定义

函数在Java中被称为方法。

格式:

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2) {

函数体;

return 返回值;

    }

方法注意事项:

方法不调用不执行;

方法与方法是平级关系,不能嵌套定义;

方法定义的时候参数之间用逗号隔开;

方法调用的时候不用在传递数据类型;

如果方法有明确的返回值,一定要有return带回一个值。

方法重载

方法重载概述

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

方法重载特点

与返回值类型无关,只看方法名和参数列表;

在调用时,虚拟机通过参数列表的不同来区分同名方法。


数组

数组概念

数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。

数组既可以存储基本数据类型,也可以存储引用数据类型。

数组的定义格式

格式1:数据类型[] 数组名:int[] arr ;

格式2:数据类型 数组名[];

数组初始化

数组初始化概述:

Java中的数组必须先初始化,然后才能使用。

所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。

数组的初始化方式:

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。

数组操作常见问题:

数组索引越界

ArrayIndexOutOfBoundsException

访问到了数组中的不存在的索引时发生。

空指针异常

NullPointerException

数组引用没有指向实体,却在操作实体中的元素时。

数组常见操作:

数组遍历:for循环遍历,根据数组索引从0到数组长度-1即可

获取最值:遍历比较

public static int getMax(int[] arr){//定义变量,可以使用第一个元素作为初始值;int max = arr[0];//遍历数组for (int x = 1; x< arr.length ; x++){//比较if (max < arr[x]){//给max 赋值max = arr[x];}}return max;}

元素逆序:for循环遍历,依次将头尾元素对调

public static void reverse(int[] arr){//定义角标 int start = 0;  //起始位int end = arr.length-1;  //末尾位//定义一个第三方变量 int temp;while(start < end ){  //判断循环的条件 //实现反转互换temp = arr[start];arr[start] = arr[end];arr[end] = temp;// 控制条件语句start++;end-- ;}}

数组排序:

1.选择排序

每一个索引都和其他索引进行比较

代码如下:

public static void select(int[] arr){//嵌套循环,实现数组的排序for(int x = 0 ; x < arr.length ; x++){//内循环,开始循环变量,比外大1for(int y = x + 1; y < arr.length ; y++){if(arr[x] > arr[y]){swap(arr,x,y);}}}}

2.冒泡排序

数组相邻换位置,将大的元素换到后面

代码如下:

public static void bubble(int[] arr){//嵌套循环,实现数组的冒泡排序for(int x = 0 ;x < arr.length ; x++){//内层循环,没次在减少1次,-x  ,-1防止越界异常for(int y = 0 ; y < arr.length-x-1 ; y++){if(arr[y] > arr[y+1]){swap(arr,y,y+1);}}}}

数组二分查找

前提数组必须有序排列

public static int binarySearch(int[] arr, int key){//定义三个变量,保存数组中最小,最大,中间索引int min = 0;int max = arr.length-1;int mid = 0;//循环折半,条件小索引<=大索引while(min <= max){//计算中间索引mid = (min+max)/2;//关键字和中间索引,进行比较if(key > arr[mid]){min = mid + 1;}else if( key < arr[mid]){max = mid -1;}else{//找到了,返回索引return mid;}}return -1;}


二维数组

二维数组定义格式

格式1

数据类型[][] 变量名 = new 数据类型[m][n];

m表示这个二维数组有多少个一维数组;

n表示每一个一维数组的元素个数。

格式2

数据类型[][] 变量名 = new 数据类型[m][];

m表示这个二维数组有多少个一维数组;

没有直接给出一维数组的元素个数,可以动态的给出。

格式3

数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

简化版格式:数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};

二维数组遍历

循环嵌套

代码如下:

public static void print2Array(int[][] arr){//开始遍历 for (int x=0; x<arr.length; x++){ //arr 表示二维数组,arr.length表示二维数组长度 ,外循环,循环的是二维数组 //arr[x]  一维数组for (int y=0; y<arr[x].length; y++ ){System.out.println(arr[x][y]);}}}


0 0
原创粉丝点击