04day_Java基础语法
1、选择语句switch
①格式:
switch(表达式){
case常量1:
要执行的语句;
break;
case常量2:
要执行的语句;
break;
case常量3:
要执行的语句;
break;
default:
要执行的语句
break;
}
执行流程:表达式和case后面的常量进行比较,和哪个case后的常量相同就执行哪个case后面的程序,遇到break,就全结束。
switch语句中的表达式的数据类型是有要求的。jdk1.7 数据类型接受byte、short、int、char、enum(枚举)、String(1.7新增)。
1 public class SwitchDemo{ 2 public static void main(String args[]){ 3 int week=6; 4 switch(week){ 5 case 1: 6 System.out.println("星期一"); 7 break; 8 9 case 2: 10 System.out.println("星期二"); 11 break; 12 13 case 3: 14 System.out.println("星期三"); 15 break; 16 17 case 4: 18 System.out.println("星期四"); 19 break; 20 21 case 5: 22 System.out.println("星期五"); 23 break; 24 25 case 6: 26 System.out.println("星期六"); 27 break; 28 29 case 7: 30 System.out.println("星期七"); 31 break; 32 33 default: 34 System.out.println("星期不存在!"); 35 } 36 } 37 }
运行结果:
②case穿透
switch特性:case穿透
case后面没有break,程序就会一直向下穿透;
当case后面的常量和switch中数据相同,没有break,一直向下穿透。
public class SwitchDemo_1{ public static void main(String args[]){ int week=5; switch(week){ case 1: case 2: case 3: case 4: case 5: System.out.println("工作日!"); break; case 6: case 7: System.out.println("休息日!"); break; default: System.out.println("星期不存在!"); } } }
运行结果:
2、数组
(一)
①数组的定义一:
数据过多,定义变量代码重复多,写很麻烦,数据多了存数组。
格式:
数据类型 [ ]数组名 =new 数据类型[存储元素的个数];
元素个数就是数组中可以存储多少个数据(恒定,定长)
JVM对自己的内存进行了划分,分成5个区域:
(1)寄存器:内存和CPU之间;
(2)本地方法栈:JVM调用了系统中的功能;
(3)方法和数据共享:运行时期class文件进入的地方;
(4)方法栈:所有的方法运行的时候进入的地方;
(5)堆:存储的是容器和对象。
arr引用类型,保存的数据实质上是内存中的地址
public static void main(String args[]){ int[] arr=new int[3];//该数组可以存储三个元素 System.out.println(arr); }
运行结果:
数组的定义二:
数据类型[ ]变量名=new数据类型[ ]{元素1,元素2,元素3};
注意事项:new 后面的中括号中不允许写任何内容,写了就编译失败。
public class ArrayDemo_2{ public static void main(String args[]){ //定义数组的同时对元素进行赋值 int[] arr=new int[] {1,2,3,4,5,7}; System.out.println(arr.length); System.out.println(arr[5]); } }
运行结果:
数组的定义三:
数据类型[ ]变量名={元素1,元素2,元素3};
public class ArrayDemo_2{ public static void main(String args[]){ //定义数组的同时对元素进行赋值 int[] arr=new int[] {1,2,3,4,5,7}; System.out.println(arr.length); System.out.println(arr[5]); System.out.println("------------------------------------------"); //直接大括号赋值,定义数组 int[] arr2={0,2,4,6,8}; System.out.println(arr2.length); System.out.println(arr2[1]); } }
运行结果:
②使用索引访问数组的元素
数组是一个容器,:存储到数组中的每个元素都有自己的编号,自动编号:最小值是0,最大值是长度-1;
索引(index)、下标、角标;
访问数组存储的元素,必须依赖索引,公式:数组名[索引]
public class ArrayDemo{ public static void main(String args[]){ int[] arr=new int[3];//该数组可以存储三个元素 System.out.println(arr); //通过索引的方式,访问数组中的三个元素 System.out.println(arr[0]);//第一个 System.out.println(arr[1]);//第二个 System.out.println(arr[2]);//第三个 } }
运行结果:
③数组的length属性
数组的length属性,就是数组的长度;
公式:数组名.length
· 数组的最小索引是0,最大索引数组.length-1;
public class ArrayDemo_1{ public static void main(String args[]){ int[] arr=new int[3];//该数组可以存储三个元素 System.out.println(arr); //通过索引的方式,访问数组中的三个元素 System.out.println(arr[0]);//第一个 System.out.println(arr[1]);//第二个 System.out.println(arr[2]);//第三个 System.out.println("数组的长度"+arr.length); } }
运行结果:
④为数组的元素赋值
public class ArrayDemo_3{ public static void main(String args[]){ int[] arr=new int[5]; //将1索引上的元素赋值3 arr[1]=3; System.out.println(arr[1]); } }
运行结果:
⑤数组的遍历
通过索引的方式将数组中的每个元素分别获取出来;
依赖索引,规律从0开始,一直在自动增长,到达length-1
使用循环实现:
for知道循环次数,计数器思想;
while不确定次数。
public class ArrayDemo_4{ public static void main(String args[]){ int[] arr={2,4,6,8,10}; //数组遍历 for(int i=0;i<arr.length;i++){//或者写成i<=arr.length-1 System.out.println(arr[i]); } } }
运行结果:
⑥数组中常见的异常
(1)数组的越界异常java.lang.ArrayIndexOutOfBoundsException: 3
超过最大索引或者写成负数
public class ArrayDemo_4{ public static void main(String args[]){ int[] arr={2,4,6}; //数组的越界异常 System.out.println(arr[3]); } }
运行结果:
(2)空指针异常java.lang.NullPointerException
public class ArrayDemo_4{ public static void main(String args[]){ //int[] arr={2,4,6}; //数组的越界异常 //System.out.println(arr[3]); //空指针异常 int[] arr2={1,3,5}; System.out.println(arr2[2]); arr2=null; System.out.println(arr2[3]); } }
运行结果:
⑦数组获取最值
找出数组中的最大值
(1)定义变量,保存数组中,0索引上的元素;int max=arr[0];
(2)max和数组中其他元素进行比较
数组遍历
max比其他索引上的元素小,max记录下较大的数
(3)数组遍历完成后,max记录的就是数组的最大值
public class ArrayDemo_5{ public static void main(String args[]){ int [] arr={2,3,5,8,6,2}; //定义变量记录数组中0索引上的元素 int max=arr[0]; //遍历数组,获取所有的元素和变量max比较 for(int i=1;i<arr.length;i++){ //变量max和数组中的每个元素进行比较 if(max<arr[i]){ max=arr[i]; } } System.out.println(max); } }
运行结果:
3、二维数组
①二维数组的定义
数组中的数组,数组里面存储的还是数组;
定义方式和一维数组很相似;
第一种方式:
int[ ][ ]arr=new [3][4];
其中,[3]表示二维数组中,有三个一维数组;[4]表示三个一维数组中,每个数组的长度是4
public class ArrayArrayDemo{ public static void main(String args[]){ int [] [] arr=new int[3][4]; System.out.println(arr); System.out.println(arr[1]); System.out.println(arr[2][3]); } }
第二种方式:
int[ ][ ]arr=new [3][ ];
二维数组中定义三个一维数组,每个一维数组长度没有指定,必须要new。
arr[0]=new int[5];
arr[1]=new int[4];
第三种方式:
int[ ][ ]arr={{1,4},{3,5,8},{0,9,8}};
②二维数组的访问
public class ArrayArrayDemo_1{ public static void main(String args[]){ int[] [] arr={{1,2,3},{4,5},{6,7,8,9},{0}}; System.out.println(arr[2][1]);//打印7 System.out.println(arr[3][0]);//打印0 } }
运行结果:
③二维数组的遍历
遍历:for循环,遍历二维数组;遍历过程中,for遍历一维数组。
public class ArrayArrayDemo_2{ public static void main(String args[]){ int[] [] arr={{1,2,3},{4,5},{6,7,8,9},{0}}; //外循环,遍历二维数组 for(int i=0;i<arr.length;i++){ //内循环,遍历每个一维数组 for(int j=0;j<arr[i].length;j++){ System.out.print(arr[i][j]); } System.out.println();//换行 } } }
运行结果:
二维数组求和
public class ArrayArrayDemo_3{ public static void main(String args[]){ int[] [] arr={{1,2,3},{4,5},{6,7,8,9},{0}}; int sum=0; //外循环,遍历二维数组 for(int i=0;i<arr.length;i++){ //内循环,遍历每个一维数组 for(int j=0;j<arr[i].length;j++){ sum +=arr[i][j]; } } System.out.println(sum); } }
运行结果:
4、公司销售综合练习
第一个小组销售额为{11,22}万元;
第二个小组的销售额为{21,22,23}万元;
第三个小组的销售额为{31,32,33,34}万元.
求和:每个小组求和
所有小组求和
public class ArrayArrayDemo_4{ public static void main(String args[]){ int[] [] arr={{11,12},{21,22,23},{31,32,33,34}}; int sum=0;//所有元素的求和 int groupSum=0;//每个一维数组的求和 for(int i=0;i<arr.length;i++){ //内循环,遍历每个一维数组 for(int j=0;j<arr[i].length;j++){ //一维数组求和 groupSum +=arr[i][j]; } System.out.println("第"+(i+1)+"小组销售额为:"+groupSum); sum+=groupSum; groupSum=0; } System.out.println("总销售额:"+sum); } }
运行结果:
5、随机点名器
需求分析:
1、存储全班同学的姓名
2、预览所有人的姓名
3、随机出一个人的姓名
import java.util.Random; public class CallName{ public static void main(String args[]){ //存储名字到数组中 String [] names={"张三","李四","王五","李六","赵七"}; //预览:遍历数组,打印所有姓名 for(int i=0;i<names.length;i++){ System.out.println(names[i]); } System.out.println("------------------------------"); //随机出一个人的名字 Random ran=new Random(); //随机数,范围必须是0-数组的最大索引 int index=ran.nextInt(names.length);//index 就是随机数,作为索引 System.out.println(names[index]); } }
运行结果:
相关推荐
<add key="RedisPath" value="127.0.0.1:6379"/> todo:这里配置自己redis的ip地址和端口号。//ReadServerList:可读的Redis链接地