Java基础概述
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础概述相关的知识,希望对你有一定的参考价值。
案例:猜数字小游戏
需求:产生一个随机数,用户输入数字进行猜这个数字,如果猜大了,就提示猜大了,猜小了就提示猜小了,直到猜中为止。
/* 猜数字小游戏 思路:1、有一个随机数,所以要创建Random类来实现随机数 2、需要用户去输入这个数字,要创建Scanner类来实现输入的功能 3、用户输入的数字一直到和随机数相同才,所以需要循环(while)去实现 4、需要一个判断语句去判断是否猜中,根据不同的结果返回不同的提示 */ import java.util.Random; import java.util.Scanner; public class GuessGame{ public static void main(String[] args){ System.out.println("请输入1~100的整数:"); //实现随机数 Random ran = new Random(); int ranNumber = ran.nextInt(100)+1; //需要用户输入数据 Scanner sc = new Scanner(System.in); //while循环 while(true){ int scNumber = sc.nextInt(); if(ranNumber>scNumber){ System.out.println("猜小了"); }else if(ranNumber<scNumber){ System.out.println("猜大了"); }else{ System.out.println("猜中了"); break; } } } }
switch选择语句
switch选择语句的格式:
switch(表达式){
case 常量1:
要执行的语句;
break;
case 常量2:
要执行的语句;
break;
case 常量3:
要执行的语句;
break;
…
default:
要执行的语句;
break;
}
执行流程:将表达式和case的常量值进行比较,如果相等,就执行该case下的语句,break跳出整个switch语句,如果都没有匹配的,就执行default下的语句。
下面的代码演示了switch语句的具体体现:
/* switch选择语句的体现 需求: 如果是1,就输出星期一 如果是2,就输出星期二 如果是3,就输出星期三 如果是4,就输出星期四 如果是5,就输出星期五 如果是6,就输出星期六 如果是7,就输出星期日 */ public class SwitchDemo{ public static void main(String[] args){ //定义一个变量来和要输出的代码进行匹配 int week = 7; switch(week){ case 1: System.out.println("今天是星期一"); break; case 2: System.out.println("今天是星期二"); break; case 3: System.out.println("今天是星期三"); break; case 4: System.out.println("今天是星期四"); break; case 5: System.out.println("今天是星期五"); break; case 6: System.out.println("今天是星期六"); break; case 7: System.out.println("今天是星期日"); break; default: System.out.println("星期不存在"); break; } } }
运行结果:
case具有穿透性,什么是穿透性,就是当表达式和常量匹配后,如果下面的case没有break,会直接执行他们的执行语句,知道遇到break为止。
具体代码的体现如下:
/* case的穿透性体现 需求:在星期一到星期五为工作日,星期六到星期天为休息日 */ public class SwitchDemo_1{ public static void main(String[] args){ //定义一个变量来和case的值进行匹配 int week = 2; 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("没有这个星期"); break; } } }
运行结果:
数组
当数据有很多时,这时候使用定义变量的方式会变得很麻烦,而且代码会变得很繁琐,这是就需要用到数组。数组就是一组数据的集合,每个数据被称为是元素,同一数据类型的数组可以放入很多指定数据类型的同数据。,注意必须是同类型的数据才能放入同类型的数组中。
定义数组的格式:数据类型[] 数组名 = new 数据类型[元素的个数];
格式分析:数据类型:要存储数据的数据类型,存储什么数据就定义什么数据类型
[]代表数组的意思
数组名:给这个数组起一个名字,起名遵循标识符的规则就可以。
new就是创建一个新的数组
元素的个数就是要存储元素的长度(长度不可以被改变)。
比如:定义一个整数类型的数组,长度为4
int[] arr = new int[4];
如何去操作数组中的元素呢?这就需要对数组进行索引的操作。什么是索引呢,通俗讲就是数组元素的编号,它的索引是从0开始的,最大值是数组的长度减1,下面就用一段代码来演示如何用索引对数组进行操作。
/* 索引的操作演示 */ public class ArrayDemo{ public static void main(String[] args){ //定义一个长度为3的整数数组 int[] arr = new int[3]; //对数组的每个元素用索引进行打印 System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); } }
运行结果:
如何获取数组的长度:数组名.length
数组的最小索引是0,最大索引就是数组名.length-1
数组还有另外两种定义的方式,这种方式不用定义长度,而是直接可以定义元素:
格式一:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,…,元素n };
格式二:数据类型[] 数组名 = {元素1,元素2,元素3,…,元素n };
两种方式相比较,第二种方式更为常用,下面对两种格式用代码进行体现:
/* 数组定义的另外两种格式 */ public class ArrayDemo_1{ public static void main(String[] args){ //第一种格式:定义一个整数类型的数组 int[] arr = new int[]{1,3,6,8,0,5}; //获取该数组的长度 System.out.println(arr.length); //使用索引对数组进行操作 System.out.println(arr[3]); System.out.println("--------------------"); //第二种格式:定义一个整数类型的数组 int[] arr1 = {9,4,1,8,3}; //获取该数组的长度 System.out.println(arr1.length); //使用索引对数组进行操作 System.out.println(arr1[3]); } }
运行结果:
如何用索引对数组中的元素进行赋值?看下面的代码演示:
/* 使用索引对元素进行赋值操作 */ public class ArrayDemo_2{ public static void main(String[] args){ //定义一个长度为4的整数数组 int[] arr = new int[4]; //用索引对元素赋值 arr[1] = 3; System.out.println(arr[1]); System.out.println(arr[2]); } }
运行结果:
数组的遍历
所谓遍历就是通过索引的方式,将数组中的元素全部进行获取,下面通过代码来实现数组的遍历:
/* 数组的遍历实现 */ public class ArrayDemo_3{ public static void main(String[] args){ //定义一个数组 int[] arr = {4,5,6,8,9,1,3}; //利用for循环遍历数组 for(int i = 0;i < arr.length;i++){ System.out.print(arr[i]); } } }
运行结果:
数组异常的情况
数组最常见的异常有两种:
1. 数组角标越界异常,这种异常通常是因为索引不存在或者是角标超出数组的长度
2. 空指针异常,这种异常通常是将该数组arr= null,这时这个数组已经不存在了,所以会操作空指针异常
下面通过一段代码将两个异常出现的情况进行演示:
/* 数组异常的代码实现 */ public class ArrayDemo_4{ public static void main(String[] args){ //第一种异常情况:角标越界异常 int[] arr = new int[3]; //System.out.println(arr[3]);//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 //第二种异常情况:空指针异常 arr = null; System.out.println(arr[3]);//Exception in thread "main" java.lang.NullPointerException } }
案例:获取一个数组中的最大值
/* 获取数组的最大值 思路: 1、定义一个整数数组,给出具体的元素 2、定义一个变量max来记录住数组角标为0的元素, 3、进行数组的遍历 5、使用判断语句用max和其他角标的元素进行比较,max的值如果小的话,就把这个元素的值赋值给max,这样max里面的值一直是最大的哪那个值 6、打印max的值即可 */ public class ArrayBestTest{ public static void main(String[] args){ //1、定义一个整数数组,给出具体的元素 int[] arr = {4,8,60,80,119}; //2、定义一个变量max来记录住数组角标为0的元素 int max = arr[0]; //进行数组的遍历 for(int i = 1;i < arr.length;i++){ //使用判断语句用max和其他角标的元素进行比较 if(max < arr[i]){ //将大的值赋值给max max = arr[i]; } } //6、打印max的值即可 System.out.println(max); } }
以上是关于Java基础概述的主要内容,如果未能解决你的问题,请参考以下文章