如果所有的元素均不能被3整除,需要输出“没有能被3整除的元素”,这一步程序如何编写?

如果所有的元素均不能被3整除,需要输出“没有能被3整除的元素”,这一步程序如何编写?

package com.imooc;

import java.util.Scanner;

public class WorkDemo {
	//显示提示信息的方法
	public void cue() {
		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("请输入对应的数字进行操作:");	
	}
	
	// 1--插入数据的方法
	public int[] insertDate() {
		Scanner sc=new Scanner(System.in);
		int[] arr=new int[10];
		//输入1——9的9个数字
		for(int i=0;i<arr.length-1;i++) {
			System.out.println("请输入第"+(i+1)+"个数据:");
			arr[i]=sc.nextInt();
			if(arr[i]==0) {
				System.out.print("笨蛋,输入的数据不能为0!"+"     ");
				System.out.println("请重新输入第"+(i+1)+"个数据:");
				arr[i]=sc.nextInt();
			}
			}
		//显示输入的数组元素
		System.out.println("数组元素为:");
		for(int n=0;n<arr.length-1;n++) {
			System.out.print(arr[n]+"  ");
		}
		System.out.println();
		return arr;
	}
	
	
	//2--显示所有数据的方法
	public void showDate(int[] a,int length) {
		System.out.println("数组元素为:");
		for(int i=0;i<length;i++) {
			if(a[i]!=0) {
				System.out.print(a[i]+"   ");
			}else {
				System.out.print("  ");
			}	
		}
		System.out.println();
	}
	
	 //3--在指定位置插入数据的方法
    public void insertAtArray(int[] a,int n,int k) {
        Scanner sc1=new Scanner(System.in);
        //int b=sc1.nextInt();
        System.out.println("请输入要插入的数据:");
        n=sc1.nextInt();
        System.out.println("请输入要插入数据的位置:");
        k=sc1.nextInt();
        for(int i=a.length-1;i>=k;i--) {
            a[i]=a[i-1];    
        }
        a[k-1]=n;
    }
     
     
    //4--查询能被3整除的数据的方法
    public void divThree(int[] a) {
        System.out.println("能被3整除的数据为:");
        for(int i=0;i<a.length;i++) {
            if(a[i]%3==0) {
                System.out.print(a[i]+"   ");
            }
        }
        
        
        for(int n=0;n<a.length;n++) {
   	 if(a[n]%3!=0) {
   		 System.out.print(" ");
   	 }
    } 
        System.out.println("没有能被3整除的数据!");
        System.out.println();
    }
     
	
	

	public static void main(String[] args) {
		 // 定义一个数组
        int[] arr1=new int[10];
        boolean flag=true;
        //创建方法所在类的对象
        WorkDemo am=new WorkDemo();
        while(flag) {
            am.cue();
            Scanner sc2=new Scanner(System.in);
            int p=sc2.nextInt();
            switch(p) {
            case 1:
                //赋值并调用插入数据的方法insertDate
                arr1=am.insertDate();break;
                 
                //调用显示所有数据的方法
            case 2:
                am.showDate(arr1,arr1.length);break;
                 
                //调用在指定位置处插入数据的方法
            case 3:
                am.insertAtArray(arr1,10,9);
                am.showDate(arr1,arr1.length);
                break;
                 
                //调用能被3整除的方法
            case 4:
                am.divThree(arr1);break;            
                 
            case 0:
                System.out.println("退出");
                 
                flag=false;
                break;
                 
            default:
                System.out.println("0--4以外的数字无效");
                break;
            }   
        }
	}

}

在第4步,查询能被3整除的元素时,如果所有的元素均不能被3整除,需要输出“没有能被3整除的元素”,这一步程序如何编写?

正在回答

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

3回答

    public void divThree(int[] a) {

        int s=0;

        System.out.print("数组中能被3整除的数为:");

        for(int i:a) {

            if(i%3==0) {

            System.out.print(i+"    ");

            s+=1;

        }

    }

    if(s==0) {

        System.out.print("数组元素均不能被3整除");

    }

    System.out.println();

}

我是用计数写的

好帮手慕阿满 2019-01-15 17:35:32

同学你好,应该是定义了字符串str和boolean值flag后,先循环判断数组中是否存在能被3整除的数,有能被3整除的数,str=str+a[i]+" ";并将flag赋值为true,在循环外判断flag,根据思路完成的代码如下:

public void divTree(int[] a) {
		boolean flag = false;
		String str = " ";
		System.out.println("能被3整除的数据为:");
		for(int i=0;i<a.length;i++) {
			if(a[i]%3==0&a[i]!=0) {
				str = str+a[i]+" ";
				flag = true;
			}
		}
		if (flag) {
			System.out.println(str);
		} else {
			System.out.println("没有能被3整除的数据!");
		}
	}

祝:学习愉快~

好帮手慕阿满 2019-01-15 16:43:04

也可参考如下思路:

定义一个字符串str用于存放能被3整除的数据,设置boolean变量的值为false。使用for循环遍历数组元素,在循环中使用if语句判断是否能被3整除,如果满足if语句的条件,则设置boolean变量的值为true,并将能被3整除的数据用字符串拼接起来,如str=str+a[i] +” ”;  然后在循环外判断如果boolean为true则输出str的值,否则输出:数组中没有数据能被3整除。

祝:学习愉快~


  • 提问者 慕用6373601 #1
    不太明白,这么写好像也不对 public void divThree(int[] a) { boolean flag=true; System.out.println("能被3整除的数据为:"); if(flag) { for(int i=0;i<a.length;i++) { if(a[i]%3==0) { System.out.print(a[i]+" "); } } }else{ System.out.println("没有能被3整除的数据!"); } System.out.println(); }
    2019-01-15 17:08:04
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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