老师为什么我上面不像视频中的那样输出的

老师为什么我上面不像视频中的那样输出的

package com.imoou;


import java.util.Scanner;

/**

 * 从键盘接收数据

 * @return接收数据的数据

 *

 */

public class DataManage {

public int[]insertData(){

int[]a=new int[10];

Scanner sc=new Scanner(System.in);

//少接收一个数据,为指定位置插入数据做准备

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

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

try {

a[b]=sc.nextInt();

}catch(java.util.InputMismatchException e) {

System.out.println("输入的数据格式有误,不能有非数字");

sc.next();

b--;

}

}

return a;

}

/**

* 显示数组中显示的内容

* @param a;数组

* @param length 要显示的元素的个数

*/

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

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

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

}

System.out.println();

}

/**

*从键盘接受一个数据,插入到数组的指定位置处

* @param a要插入的数据的数组

* @param n要插入的数据

* @param k要插入的位置,从零开始

*/

public void inserAtArray(int[]a,int n, int k) {

//注意从最后一个数据开始移动,避免数据覆盖,

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

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

}

a[k]=n;

}


/**

* 输出数组中能被3整除的元素

* @param a

*/

public void divThree(int[]a) {

String str="";

int count=0;

for(int n:a) {

if(n%3==0) {

str=str+n+"";

count++;

}

}

if(count==0) {

System.out.println("数组没有被三整除");

}else {

System.out.println("数组中能被三整除"+str);

}

}

public void nitice() { 

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("******************************");

}

public static void main(String[] args) {

DataManage dm=new DataManage();

Scanner sc=new Scanner(System.in);

int input;

int[]a = null;

dm.nitice();

while(true) {

dm.nitice();

System.out.println("请输入对应数字进行操作");

input=sc.nextInt();

if(input==0) {

System.out.println("退出程序!");

break;

}

switch(input) {

case 1:

//插入数据

a=dm.insertData();

//显示数据

System.out.println("数组元素为");

dm.showData(a,a.length-1);

break;

case 2:

if(a!=null) {

System.out.println("数组元素为;");

if(a[a.length-1]==0) {

//如果数组最后一个元素为零是,说明没有插入数组,因此不显示最后的元素

dm.showData(a,a.length-1);

}else {

dm.showData(a,a.length); 

}

}else {

System.out.println("还未在数组中插入数据,请重新输入");

}

break;

case 3:

break;

case 4:

break;

 

}

}

}


}



正在回答

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

2回答

同学你好,测试同学的代码是可以正确不显示0的,这里与课程中老师的差异时,老师输出的是9个数,是因为在for循环中进行了-1操作

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

这里同学也可以按照如下位置更改代码。

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

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

  • 千華2748110 提问者 #1
    那么怎么才能像视频那样字输出呢老师
    2020-09-01 10:19:53
千華2748110 提问者 2020-08-31 23:06:21
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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