请大神们帮忙看一下,是否完整,是不是有逻辑错误。谢谢!!!
package come.imooc;
import java.util.Scanner;
public class Manage {
//case1:插入数据
public int[] insertData(){
Scanner sc=new Scanner(System.in);
int[] arr=new int[10];
for(int i=0;i<=arr.length-1;i++){
System.out.println("请输入第"+(i+1)+"个数据");
int n=sc.nextInt();
if(n==0) {
System.out.println("输入的数据不能为零,请重新输入");
i--;
continue;
}
arr[i]=n;
}
return arr;
}
//case2:显示所有数据
public void showData(int[] arr,int length) {
System.out.println("数组的元素为:");
for(int i=0;i<=arr.length;i++) {
if(arr[i]!=0){
System.out.print(arr[i]+" ");
}
}System.out.println();
}
//case3在指定位置插入数据
public void insertAtArray(int[] arr,int n,int k) {
Scanner sc1=new Scanner(System.in);
System.out.println("请输入要插入的数据:");
n=sc1.nextInt();
if(n==0) {
System.out.println("插入的数据不能为0,请重新输入");
}
System.out.println("请输入要插入的位置:");
k=sc1.nextInt();
for(int i=arr.length-1;i>=k;i--){
arr[i]=arr[i-1];
arr[k-1]=n;
}
arr[k]=n;
System.out.println("此时数组arr为:"+arr);
}
//case4查询能被3整除的数字
public void divThree(int[] arr) {
System.out.println("能被3整除的数字是");
for(int i=0;i<=arr.length;i++) {
if(arr[i]!=0&arr[i]%3==0) {
System.out.print(arr[i]+" ");
}else {
System.out.println("没有元素能被3整除");
}
}
}
//显示菜单
public void list() {
System.out.println("*****************************");
System.out.println("1、插入数据");
System.out.println("2、显示所有数据");
System.out.println("3、在指定位置插入数据");
System.out.println("4、查询能被3整除的所有数据");
System.out.println("0、退出");
System.out.println("*****************************");
System.out.println("请输入对应的数字进行操作:");
}
public static void main(String[] args) {
Manage mymanage=new Manage();
Scanner sc=new Scanner(System.in);
boolean flag=true;
int[] arr=new int[9];
while(flag){
mymanage.list();
int n=sc.nextInt();
switch(sc.nextInt()) {
case 1:
arr=mymanage.insertData();break;
case 2:
mymanage.showData(arr,arr.length);break;
case 3:
int n1=0;
int k=0;
mymanage.insertAtArray(arr, n1, k);break;
case 4:
mymanage.divThree(arr);break;
case 0:
System.out.println("退出程序");
flag=false;
default:
System.out.println("请输入0——4范围内的整数");
}
}
}
}47
收起
正在回答
2回答
1、insertAtArray()方法里,判断插入数据不能为0,没有起到作用,如果为0,只是输出一条信息,程序还是会顺序执行,这里如果你想阻止0的输入,可以在外面添加个循环,只有输入不为0,跳出循环再执行位置的输入。
2、divThree()方法里,else输出的信息不能放在else中,解决办法:可以定义一个整型变量初始值为0,如果有能被3整除的数据,则变量值加1。然后根据count的值是否为0判断是否有能被3整除的元素。
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星