8-2的第二个方法

8-2的第二个方法

 public void showData(int[] a, int length) {
  
  for(int i=0;i<length;i++) {
    System.out.print(a[i]);
   System.out.print("");
   if(length>7) {System.out.println("输入有误");i--;break;}
   
  }
 }


老师你好,我想要使他能够在输入的长度大于数组长度时会重复运行这个方法..怎么做才行

正在回答

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

2回答

不是很理解同学的问题。输入的长度大于数组长度重复运行?同学说的输入的长度是方法中的参数int length吗?同学可以使用if判断,当length大于数组长度时,怎样操作,不大于数组长度时怎样操作。这个length参数是在传入时就固定的,判断一次就可以,不需要重复运行。另外这个参数length一般就是传入数组的长度。如 :showData(int[] a,int a.length).

这个方法可按如下思路修改:

该方法要考虑两种情况,即在指定位置处插入数据前和在指定位置处插入数据后。在指定位置处插入数据前,应该显示9个数据,而在指定位置插入数据后,应该显示10个数据。到底显示9个还是10个数据的判断标准就是最后一个数组元素是否为0。因此可以在循环中加入一个数组元素是否为0的判断,如果为0则不输出该元素,就达到了作业的要求。

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

  • 卡内基先生 提问者 #1
    sorry,是我表达错误。我的意思是在第二个方法输出所有数据中,如果输入的length>数组设定的长度,则出现报错并且重新让你输入,直到输入了合适的长度程序才继续运行,相当于while(true)一样,但我不知道加在哪里
    2018-11-27 13:36:27
好帮手慕阿满 2018-11-27 14:05:22

同学你好,一般情况下,第二个方法显示所有数据的方法中输入的参数length的值是固定的,为传入数组的长度。如果同学一定要在该方法中输入长度并判断,可以使用while()循环 。代码如下:

public class Demo {
	public static void main(String[] args) {
		int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
		Demo demo = new Demo();
		int length = 12;
		demo.showData(arr, length);
	}

	public void showData(int[] a, int length) {
		Scanner sc = new Scanner(System.in);
		while (length > a.length) {
			System.out.println("长度大于数组长度,请重新输入");
			System.out.println("请输入数组长度");
			length = sc.nextInt();
		}
		for (int i = 0; i < length; i++) {
			System.out.print(a[i]);
			System.out.print(" ");
		}
	}

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

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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