java基础概括_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

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;

}

}

}

运行结果:

159307f17ac0eaea3cde91c8d4064ca0.png

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;

}

}

}

运行结果:

a2d81c7d879677b19ebc8679086b15f4.png

数组

当数据有很多时,这时候使用定义变量的方式会变得很麻烦,而且代码会变得很繁琐,这是就需要用到数组。数组就是一组数据的集合,每个数据被称为是元素,同一数据类型的数组可以放入很多指定数据类型的同数据。,注意必须是同类型的数据才能放入同类型的数组中。

定义数组的格式:数据类型[] 数组名 = 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]);

}

}

运行结果:

e26a27d9a5f0657becf493d963f048b5.png

如何获取数组的长度:数组名.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]);

}

}

运行结果:

18abecda00480f08a668bd5b66633b68.png

如何用索引对数组中的元素进行赋值?看下面的代码演示:/*

使用索引对元素进行赋值操作

*/

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

}

}

运行结果:

de736acff8ba3f88a8fb5ef774fc7381.png

数组的遍历

所谓遍历就是通过索引的方式,将数组中的元素全部进行获取,下面通过代码来实现数组的遍历:/*

数组的遍历实现

*/

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 

System.out.print(arr[i]);

}

}

}

运行结果:

f9bd0fd8526e108d4c73bb77dda144f0.png

数组异常的情况

数组最常见的异常有两种:

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 

//使用判断语句用max和其他角标的元素进行比较

if(max 

//将大的值赋值给max

max = arr[i];

}

}

//6、打印max的值即可

System.out.println(max);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值