重新写了写代码 老师帮看下除3那里提示怎么还不对

重新写了写代码 老师帮看下除3那里提示怎么还不对

package practice;


import java.util.Scanner;


public class homework {

public void notice() {

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 void insertData(int a[]) {

int n=0;

while(n<9) {

Scanner sc=new Scanner(System.in);

System.out.println("请输入第"+(n+1)+"个数");

int num=sc.nextInt();

if(num==0) {

System.out.println("不能输入0,行重新输入");

continue;

}else {

a[n]=num;

n++;

}

}

for(int i=0;i<a.length;i++) {

if(a[i]!=0)

System.out.print(a[i]+" ");

}

System.out.println();

}

public void showData(int a[],int length) {

for(int i=0;i<a.length-1;i++) {

System.out.print(a[i]+" ");

}

System.out.println();

}

public void insertDataAt(int a[]) {

while(true) {

System.out.println("请插入一个数字");

Scanner sc=new Scanner(System.in);

int n=sc.nextInt();

if(n==0) {

System.out.println("不能插入0,请重新输入");

continue;

}

System.out.println("请插入位置");

int k=sc.nextInt();

for(int i=a.length-1;i>k;i--) {

a[i]=a[i-1];

}

a[k]=n;

for(int i=0;i<a.length;i++) {

System.out.print(a[i]+" ");

}

System.out.println();

}

}

public void divThree(int a[]) {

boolean flag=false;

for(int i=0;i<a.length-1;i++) {

if(a[i]%3==0) {

flag=true;

if(flag=true) {

System.out.print(a[i]+" ");

}else{

System.out.println("没有被3整除的数");

}

}

}

System.out.println();

}

    public static void main(String[] args) {

// TODO 自动生成的方法存根

homework method=new homework();

int a[]=new int[10];

while(true) {

method.notice();

Scanner sc=new Scanner(System.in);

int n=sc.nextInt();

switch(n) {

case 1:method.insertData(a);break;

case 2:method.showData(a, a.length-1);break;

case 3:method.insertDataAt(a);break;

case 4:method.divThree(a);break;

}

}

}

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿莹 2019-07-19 18:25:16

1、同学你好,老师之前的方法有些问题,同学也可以这样写,可能会更清楚一些:

http://img1.sycdn.imooc.com//climg/5d31976500012ac408410528.jpg

2、在主方法中定义数组的长度是因为,本题目中,要求数组的长度是固定的,我们可以在主方法中定义一次就可以了呦,然后我们其他方法直是对这个方法进行操作就可以了,所以,可以把数组长度在主方法中就定好。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小班 2019-07-19 16:38:52

        同学你好,复制运行贴出代码,有如问题:

    1、在修改指定位置的元素中注意添加break;语句!跳出循环,例如:

http://img1.sycdn.imooc.com//climg/5d317fb00001b1f505510588.jpg

    2、 在能被3整除的方法中,先对最后一位元素添加判断,传入对应的数组长度,对应修改其他case中,添加对应的判断!

http://img1.sycdn.imooc.com//climg/5d3180ab00012f5504350166.jpg

进行数据的判断,输出最后的结果!

http://img1.sycdn.imooc.com//climg/5d3180ff00015d1005790381.jpg

        3、注意case  0的语句,直接跳出循环,结束程序,例如:

http://img1.sycdn.imooc.com//climg/5d31812f0001341804190085.jpg

        4、注意代码规范,类名要首字母大写!

         如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 SomnusL #1
    不是很明白boolean flag。找到了能被3整除的那就是F。没找到那就是T。那if(flag)一开始定义了就是F呀。F不是找了能被3整除的 else就是没找到吗?为啥是反的。。还有不是很明白为啥要在主方法定义数组长度?
    2019-07-19 16:55:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师