//记录我的“从零开始学Java” #5

今儿写了个能够往数组内储存、查询、重写数值的东西
果不其然又是一顿调试,路漫漫,唉······

结构很原始,代码很凌乱,但是看着它从不断报错逐渐变为输出的结果不符合预期,最后变为可以按照我的预期来运行,这种感觉还挺高兴的。

package com.test;
import java.util.Scanner;
public class Exercise2 {
	public static int[] num = new int[100];//声明一个包含100个元素的数组
	public static boolean[] num2 = new boolean[100];//声明一个包含100个真假值的boolean数组,用于协助上面的数组判断数组内某个元素有没有值
	public static void main(String[] args) {
		for(int i = 0;i<num2.length;++i){
			num2[i] = false;//main方法首先将num2真假值判断数组内的所有值都初始化为false
		}
		Exercise2 main22 = new Exercise2();
		main22.main2();//调用main2方法
	}
	public void main2(){
		Scanner input = new Scanner(System.in);
		System.out.println("选择要做的事情:");
		System.out.print("1.录入新值 2.查询值 3.修改已有值 4.关闭系统");
		System.out.println(" ");
		int choose = input.nextInt();
		switch(choose){//判断用户要进行的操作
		case 1:
			Exercise2 case1 = new Exercise2();
			case1.InputNew();
		case 2:
			Exercise2 case2 = new Exercise2();
			case2.Search();
		case 3:
			Exercise2 case3 = new Exercise2();
			case3.Rewrite();
		case 4:
			System.exit(0);
		}
	}
	public void InputNew(){//写入新数值的方法
		int judge = 0;//初始化一个用于判断num数组内有多少元素已经被写入数值的变量
		Scanner input2 = new Scanner(System.in);
		boolean which = false;//用于判断是否结束do~while循环
		for(int i = 0;i<num2.length;++i){
			if(num2[i] == true){
				judge = judge + 1;//如num2[i]的值为true则其对应的num[i]必然有已经储存的值,所以计数变量+1
			}
		}
		System.out.println("空余储存区为:" + (100 - judge) + "个");
		System.out.println("可用储存区编号为:");
		System.out.println(" ");
		for(int i = 0;i<num.length;++i){
			if(num2[i] == false){
				System.out.print((i + 1) + " ");//输出当前可用的元素编号
			}
		}
		do{
			System.out.println(" ");
			System.out.println("请输入您想使用的储存区编号:");
			int store = input2.nextInt();
			if(num2[store - 1] == false){//仅当num2的该位置元素值为false时可以向其对应的num数组储存值
				System.out.println("请输入您想储存于第" + store + "储存区的数值:");
				int store2 = input2.nextInt();
				num[store - 1] = store2;
				num2[store - 1] = true;
				which = true;//改变判断变量用于结束循环
				System.out.println("储存成功,现在返回主程序");
				Exercise2 a1 = new Exercise2();//写入完成,回到main2方法
				a1.main2();
			}
			System.out.println("您输入的编号区已有数据,请重新输入");
		}while(which == false);
	}
	public void Search(){//查询已有数值的方法
		Scanner input3 = new Scanner(System.in);
		boolean judge = false;
		do{
			System.out.println("请输入您想查询的储存区编号:");
			int which = input3.nextInt();
			if(num2[which - 1] == true){
				System.out.println("您查询的第" + which + "个储存区内的值为:");
				System.out.println(num[which - 1]);
				judge = true;
				System.out.println("查询结束,返回主程序");
				Exercise2 a2 = new Exercise2();
				a2.main2();
			}
			System.out.println("错误:该区域尚未被写入数值,请重新查询");
		}while(judge == true);
	}
	public void Rewrite(){//重写已有数值的方法
		Scanner input4 = new Scanner(System.in);
		boolean judge = false;
		do{
			System.out.println("请输入您想重写数值的储存区编号:");
			int which = input4.nextInt();
			if(num2[which - 1] == true){
				System.out.println("请输入您想在第" + which + "个储存区重写的数值:");
				int newNum = input4.nextInt();
				num[which - 1] = newNum;
				judge = true;
				System.out.println("重写成功,现在返回主程序");
				Exercise2 a3 = new Exercise2();
				a3.main2();
			}
			System.out.println("错误:该区域尚未被写入数值,请重新选择");
		}while(judge == false);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值