如果所有的元素均不能被3整除,需要输出“没有能被3整除的元素”,这一步程序如何编写?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | 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整除的元素”,这一步程序如何编写?
源自:Java方法
8-1 综合案例需求
0
收起
正在回答
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,根据思路完成的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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整除的数据!" ); } } |
祝:学习愉快~
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧