对于提交的8-2作业题的订正,请老师批阅~
package zuoye; import java.util.Scanner; /** * * @author Administrator * @description 包含8个元素的整型数组 * */ public class Demo { public static void main(String[] args) { Demo demo = new Demo(); int input; int[] data = null; boolean esc = false; Scanner sc = new Scanner(System.in); while(!esc) {//while(true) demo.notice(); input = sc.nextInt(); switch(input) { case 1: data = demo.insertData(); demo.showData(data,data.length); break; case 2: demo.showData(data,8); break; case 3: System.out.println("请输入要插入的数据:"); int num = sc.nextInt(); System.out.println("请输入要插入数据位置:"); int location = sc.nextInt(); demo.insertAtArray(data,num,location); break; case 4: demo.divThree(data); break; case 0: esc = true; System.out.println("退出程序!"); break; default: System.out.println("请输入正确的数字!"); //为了使switch语句语法更加完整,建议在default语句后面添加一个break break; } System.out.println(); } } 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 int[] insertData() { Scanner sc = new Scanner(System.in); int[] data = new int[8]; for(int i = 0;i < 7;i++) { System.out.println("请输入第" + (i+1) +"个数据:"); int input = sc.nextInt();// if(input == 0) { System.out.println("添加到数组中的数据不能为0"); i--; continue; } data[i] = input; } return data; } public void showData(int[] data,int length) { System.out.println("数组元素为:"); for(int i = 0;i < length;i++) { if(data[i] != 0) {// System.out.print(data[i] + " "); } } } /** * * @param data * @param n 插入的数据 * @param k 插入的位置 */ public void insertAtArray(int[] data,int n,int k) { if(!(k == data.length - 1)) { //应该将i>=k修改为i>k,不然会导致数组的第0个索引无法插入数据。 //对数数组的插入操作,一律要考虑第一个、最后一个、中间的位置情况 for(int i = data.length -1;i > k;i--) {//逆向思维 data[i] = data[i-1]; } } data[k] = n; //输出数组元素时,建议直接调用显示数据方法 //有重复的地方就是可以优化的地方 showData(data,8);//在与main同级的自定义方法中调用其他方法,直接写方法名 } public void divThree(int[] data) { int count = 0; for(int value:data) { if(value % 3 == 0 && value != 0) { count++; } } if(count == 0) { System.out.print("没有能被3整除的数据"); }else { System.out.print("数组中能被3整除的元素为:"); for(int value:data) { if(value % 3 == 0 && value != 0) { System.out.print(value + " "); } } } } }
源自:Java方法
9-1 方法课程总结
58
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕珊
2017-08-07 15:16:18
public void divThree(int[] data) { int count = 0; for(int value:data) { if(value % 3 == 0 && value != 0) { count++; } } if(count == 0) { System.out.print("没有能被3整除的数据"); }else { System.out.print("数组中能被3整除的元素为:"); for(int value:data) { if(value % 3 == 0 && value != 0) { System.out.print(value + " "); } } } }
这个方法可以改进一下,用一个循环就可以了。
定义一个字符串str用于存放能被3整除的数据,在第一个循环的if语句中将能被3整除的数据用字符串拼接起来,如str=str+a[i]+””;
然后else语句后面的循环去掉,直接输出str的值就可以了。
其他没有问题,如果提交改后的作业,可以再次提交作业即可,不用复制到问答区。祝学习愉快!
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星