黑马程序员_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循环
do…while循环语句格式:
基本格式
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循环至少执行一次循环体,for和while必须先判断条件是否是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]);}}}
- 黑马程序员_Java入门及基础语法下
- 黑马程序员_Java入门及基础语法上
- 黑马程序员_java基础_java基础语法
- 黑马程序员_java基础(语法)
- 黑马程序员_java语法基础
- 黑马程序员_Java基础语法
- 黑马程序员_java基础语法
- 黑马程序员_Java基础语法
- 黑马程序员_Java基础语法
- 黑马程序员_java基础语法
- 黑马程序员_java 基础语法
- 黑马程序员_Java语法及面向对象基础<一>
- 黑马程序员_Java入门基础
- 黑马程序员_java基础下
- 黑马程序员_Java基础语法(一)
- 黑马程序员_Java基础语法(二)
- 黑马程序员_Java基础语法1
- 黑马程序员_Java基础语法2
- 常用Vim指令
- LeetCode Combine Two Tables
- AsyncTask内的各个方法调用顺序
- nginx 配置禁止访问目录或文件
- 1071. Speech Patterns
- 黑马程序员_Java入门及基础语法下
- 在光标位置插入内容
- (C/C++学习笔记)泛型编程基础
- 关于dialog的href问题的第三种解决方案(增删改查)
- isis第一个接口up的动作
- R语言实战之关系展示
- 带浮动层的ExpandableListView
- UIColor,CGColor,CIColor三者的区别和联系
- 安装wampserver完成时提示计算机丢失MSVCR*.dll