JAVA——选择结构、循环结构、随机数、嵌套循环、数组(一维、二维)
目录
一、选择结构
IF选择结构
Switch Case选择结构
二、循环结构
for循环
while循环
do...while循环
三、Random
随机数类
四、break 和 continue区别(面试)
五、嵌套循环-多重循环
一、选择结构
IF选择结构
if....else
Switch Case选择结构
switch...case结构支持的数据类型有哪些?
char, byte, short, int, String
1、整数类型中的byte short int
2、字符型 char
3、String 属于引用类型(jdk8的新特性)
break结束switch...case结构
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体3;
break;
default:
语句体n;
break;
}
二、循环结构
for循环
for(表达式1;表达式2;表达式3){
循环体;
}或者
表达式1
for(;表达式2;){
循环体;
表达式3
}或者
表达式1
for(;;){
if(表达式){
循环体;
break;
表达式3
}
}
while循环
while(循环条件){
//满足条件,执行循环体
//循环结束条件(变量的递增或者递减、break强制结束while循环、continue)
}
do...while循环
do...while 相比while,至少执行一次,先执行一次,再判断是否满足条件
do{
//代码
}while(判断条件);
三、Random
随机数类
可以用于产生随机:整数、小数、布尔类型
r.nextInt()
r.nextInt(10) // [0,10)
r.nextFloat();
r.nextDouble();
r.nextBoolean();求[min,max]范围的值:
r.nextInt(max-min+1)+min;
四、break 和 continue区别(面试)
break 的作用 是结束当前for循环。
continue 结束本次循环,继续下次循环。
五、嵌套循环-多重循环
//外层循环控制行
for(){
//内层循环控制列
for(){
System.out.print("");
}
System.out.println();//换行
}while(){
while(){
}
}do{
do{
}while();
}while():
while(){
for(){
}}
六、一维数组
数组是一种特殊的数据类型,这种数据类型用于存储一组数据类型相同的数据。简单来说,数组就是一个容器,用于存储一组数据,这组数据具有相同的数据类型。
数组中的每个数据称为数组的元素。
变量:存储单个值
int i = 1;
double d = 1.0;
String name = "张三";
数组:存储多个相同数据类型变量的值
double score1 = 60;
double score2 = 70;
double score3 = 80;
double[] scores = {60,70,80}
声明数组
数据类型[] 数组名 ;
数据类型 数组名[] ;
数据的初始化
静态初始化
数据类型[] 数组名 = {元素1,元素2,元素3};
动态初始化
数据类型[] 数组名 = new 数据类型[5];
数组名[0] = 元素1;
package com.hl.array;public class ArrayDemo1 {public static void main(String[] args) {//创建一个数组,存储班级同学姓名//静态初始化String[] name = {"小白","小黑","小紫","小红"};//动态初始化 必须指定数组长度String[] name2 = new String[30];int[] age = new int[30];//查看第一个元素(索引下标0)位置的值System.out.println(name2[0]);//默认值 所有的引用数据类型 默认值为nullSystem.out.println(age[0]);//基本数据类型的默认值 整数0 浮点0.0 布尔false//修改指定索引下标位置的元素age[0] = 20;name2[0] = "张三";System.out.println(name2[0]);System.out.println(age[0]);}
}
索引下标越界
package com.hl.array;
public class ArrayDemo2 {public static void main(String[] args) {//数组索引下标越界//索引下标 0-9int[] array = new int[10];//java.lang.ArrayIndexOutOfBoundsException: 10
// System.out.println(array[10]);
// array[10] = 1;}
}
数组排序
数组排序指的是让一堆杂乱无章的数据,按从小到大排列,或者按从大到小排列,让其有规律。这个过程就是数组排序。排序的算法很多,例如:冒泡排序,选择排序,快速排序,归并排序,插入排序等等。咱们讲一下冒泡排序和选择排序。
冒泡排序(练习)
冒泡排序:海底的气泡由于水压的作用,越深的地方气泡就越小,气泡在上浮的过程中,由于水压的减小,气泡会越来越大,到达海面的时候,气泡会最大。基于这个启发,数学家们发明了冒泡排序。
冒泡排序的思想:以从小到大排序为例。依次比较相邻的2个数据,如果前面的数据大于后面的数据,二者交换位置,一趟下来之后,最大的数据就跑到了末尾,这个数据在下一趟不再参与比较。第二趟仍然是依次比较相邻的2个数据,如果前面的数据大于后面的数据,二者交换位置,第二趟下来之后,第2大的数据就跑到了倒数第二位,同样这个数据不再参与下一趟的比较,以此类推,对于具有n个数的数组而言,进行n-1趟上述过程,就能让数组有序。
package com.hl.sort;
import java.util.Arrays;
import java.util.Comparator;
public class SortDemo1 {public static void main(String[] args) {int[] array = {1,55,22,13,4,16,17,90,9};//数组排序 升序排序
// Arrays.sort(array);
// for (int i = 0; i < array.length; i++) {
// System.out.print(array[i]+" ");
// }System.out.println(array);//冒泡排序 两两相邻比较,小的放前面(交换位置)for (int i = 0; i < array.length-1; i++) {for (int j = 0; j < array.length-1 - i; j++) {if(array[j] > array[j+1]){//交换位置int temp = array[j];array[j] = array[j+1];array[j+1] = temp;}}System.out.println(Arrays.toString(array));}}
}
七、二维数组
二维数组本质上就是一个一维数组,每一个元素又是一个一维数组。
int[] array = {1,2,3,4};
int[][] array = {
{1,2,3,4},
{5,6,7,8}
};
二维数组的定义和初始化
静态初始化:
int[][] array = {
{1,2,3,4},
{5,6,7,8}
};
动态初始化:
int[][] array = new int[2][4];
//2行 4列
0 0 0 0
0 0 0 0
array[0][0] ... [0][3]
array[1][0] ... [1][3]
二维数组的遍历
package com.hl.array2;
public class Demo1 {public static void main(String[] args) {int[][] array = {{1,2,3},{4,5,6},{7,8,9,10}};//遍历查询//求二维数组长度System.out.println(array.length);for(int i=0;i<array.length;i++){//一维数组int[] array2 = array[i]; // {1,2,3}//遍历每一个一维数组for (int j = 0; j < array2.length; j++) {System.out.print(array2[j]+" ");}System.out.println();//换行符}}
}