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 }

运行结果:

04day_Java基础语法

②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("星期不存在!");
         }
     }
 }

运行结果:

04day_Java基础语法

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);
         }

运行结果:

04day_Java基础语法

数组的定义二:

数据类型[ ]变量名=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]);
     }
 }

运行结果:

04day_Java基础语法

数组的定义三:

数据类型[ ]变量名={元素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]);
     }
 }

运行结果:

04day_Java基础语法

②使用索引访问数组的元素

数组是一个容器,:存储到数组中的每个元素都有自己的编号,自动编号:最小值是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]);//第三个
         }
 }

运行结果:

04day_Java基础语法

③数组的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);
         }
 }

运行结果:

04day_Java基础语法

④为数组的元素赋值

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]);
     }
 }

运行结果:

04day_Java基础语法

⑤数组的遍历

通过索引的方式将数组中的每个元素分别获取出来;

依赖索引,规律从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]);
         }
     }
 }

运行结果:

04day_Java基础语法

⑥数组中常见的异常

(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]);
     }
 }

运行结果:

04day_Java基础语法

(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]);
     }
 }

运行结果:

04day_Java基础语法

⑦数组获取最值

找出数组中的最大值

(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);
     }
 }

运行结果:

04day_Java基础语法

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
     }
 }

运行结果:

04day_Java基础语法

③二维数组的遍历

遍历: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();//换行
         }
     }
 }

运行结果:

04day_Java基础语法

二维数组求和

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);
     }
 }

运行结果:

04day_Java基础语法

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);    
     }
 }

运行结果:

04day_Java基础语法

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]);
     }
 }

运行结果:

04day_Java基础语法

相关推荐