第三章 项目
3.1 需求
- CRUD:添加、修改、删除、显示
- 把数据存储在数组中
- 存储的内容就是基本类型
3.2 数组
- 特点:一组类型相同的数据
- 数组的长度一旦确定就不能修改了
- 数组中的元素下标从零开始
3.2.1 案例
public class TestDemo {
public static void main(String[] args) {
//创建数组
int[] array = new int[3];
//按照下标的位置添加即可
array[0] = 100;
array[1] = 200;
//更新:就是替换下标位置的数据
array[0] = 500;
//删除:就是把指定位置的数据还原为默认值
array[1] = 0;
}
}
3.2.2 接收控制台数据
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
//接收控制台的输入数据
Scanner scanner = new Scanner(System.in);
//提示信息
System.out.println("请输入一个数字");
int i = scanner.nextInt();
System.out.println("i="+i);
}
}
3.3 完成项目功能-第一版
3.3.1 搭建开发环境
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
//创建控制台对象
Scanner scanner = new Scanner(System.in);
//创建一个数组,存储数据
int[] array = new int[5];
//为了跳出多支创建一个布尔类型
boolean flag = true;
//提示消息
System.out.println("1表示添加;2表示显示;3表示删除;4表示更新;5退出;");
//使用do-while
do {
//创建key
int key = scanner.nextInt();
//多支判断
switch (key){
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:
flag = false;
break;
}
}while(flag);
}
}
3.2.2 获取数组中的元素
public class Demo {
public static void main(String[] args){
int[] array = new int[3];
array[0] = 100;
array[1] = 200;
array[2] = 300;
//循环获取元素
System.out.println("数组长度="+array.length);
//获取元素 System.out.println(array[1]);
for (int index = 0; index < array.length; index++){
System.out.println(array[index]);
}
}
}
3.3.2 功能实现编写
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
//创建控制台对象
Scanner scanner = new Scanner(System.in);
//创建一个数组,存储数据
int[] array = new int[5];
//为了跳出多支创建一个布尔类型
boolean flag = true;
//提示消息
System.out.println("1表示添加;2表示显示;3表示删除;4表示更新;5退出;");
//使用do-while
do {
//创建key
int key = scanner.nextInt();
//多支判断
switch (key){
case 1:
//通过循环获取一个空位置
for (int index = 0; index < array.length; index++){
if (array[index] == 0){
System.out.println("请输入一个数字");
array[index] = scanner.nextInt();
System.out.println("添加成功");
//跳出循环体
break;
}
}
break;
case 2:
for (int index = 0;index < array.length; index++){
int element = array[index];
if (element != 0){
System.out.println(array[index]);
}
}
break;
case 3:
//提示
System.out.println("请输入一个你要删除的数字");
int el = scanner.nextInt();
for (int index = 0; index < array.length; index++){//找到了
if (array[index] == el){
array[index] = 0;
System.out.println("删除成功!");
//跳出循环体
break;
}
}
break;
case 4:
System.out.println("请输入一个你要更新的数字");
int el1 = scanner.nextInt();
for (int index = 0; index < array.length; index++){
if (array[index] == el1){//找到了
System.out.println("请输入你要更新的值");
array[index] = scanner.nextInt();
System.out.println("更新成功");
//跳出循环
break;
}
}
break;
case 5:
flag = false;
break;
}
}while(flag);
}
}
3.4 第二版-优化
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
//创建控制台对象
Scanner scanner = new Scanner(System.in);
//创建一个数组,存储数据
int[] array = new int[5];
//为了跳出多支创建一个布尔类型
boolean flag = true;
//提示消息
System.out.println("1表示添加;2表示显示;3表示删除;4表示更新;5退出;");
//使用do-while
do {
//创建key
int key = scanner.nextInt();
//多支判断
switch (key){
case 1:
//通过循环获取一个空位置
//定义布尔类型变量判断数组是否占满
boolean full = true;
for (int index = 0; index < array.length; index++){
if (array[index] == 0){
full = false; //进入条件判断说明数组未满
System.out.println("请输入一个数字");
array[index] = scanner.nextInt();
System.out.println("添加成功");
//跳出循环体
break;
}
}
if (full){ //full为真表示数组满了
System.out.println("数组已经满了");
}
break;
case 2:
for (int index = 0;index < array.length; index++){
int element = array[index];
if (element != 0){
System.out.println(array[index]);
}
}
break;
case 3:
//提示
System.out.println("请输入一个你要删除的数字");
//定义布尔型变量判断删除的数字数组里有没有
boolean f = true;
int el = scanner.nextInt();
for (int index = 0; index < array.length; index++){//找到了
if (array[index] == el){
f = false; //进入判断说明需要删除的数字在数组中
array[index] = 0;
System.out.println("删除成功!");
//跳出循环体
break;
}
}
if (f) { //说明输入的数不存在
System.out.println("输入的数不存在");
}
break;
case 4:
System.out.println("请输入一个你要更新的数字");
//定义布尔类型变量,判断需要更新的数字是否在数组中
boolean f1 = true;
int el1 = scanner.nextInt();
for (int index = 0; index < array.length; index++){
if (array[index] == el1){//找到了
f1 = false; //进入判断说明数组中存在需要更新的数字
System.out.println("请输入你要更新的值");
array[index] = scanner.nextInt();
System.out.println("更新成功");
//跳出循环
break;
}
}
if (f1){
System.out.println("输入的数不存在");
}
break;
case 5:
flag = false;
break;
}
}while(flag);
}
}