黑马程序员技术交流社区

标题: 想把一个数组中的数反序输出,for不知道该怎么写 [打印本页]

作者: liuelxiwd    时间: 2013-5-21 17:13
标题: 想把一个数组中的数反序输出,for不知道该怎么写
本帖最后由 liuelxiwd 于 2013-5-21 20:04 编辑
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] arr=new int[]{1,2,3,4,5,6};

  6.                 revArray(arr);
  7.                
  8.                 for(int x=0;x<arr.length;x++)

  9.                 System.out.print(arr[x]);

  10.         }
  11.         public static void revArray(int arr[])//用这个方法来反序
  12.                 {
  13.                
  14.                 for(//这个条件该怎么设定啊)
  15.                         {
  16.                         int m=arr[start];
  17.                         arr[start]=arr[end];
  18.                         arr[end]=m;

  19.                         }
  20.                         
  21.                         }
  22.         
  23.                
  24.         }
复制代码

作者: 谢孔营    时间: 2013-5-21 17:22
如果只是反序的话
这样更简单
package com.sdut.day2;

import java.io.*;
import java.util.*;

public class  Test
{
                public static void main(String[] args)
                {
                        int[] arr=new int[]{1,2,3,4,5,6};

                        revArray(arr);
                        

                }
                public static void revArray(int arr[])//用这个方法来反序
                {
                
                        for(int i =0 ;i<arr.length ;i++){
                                System.out.print(arr[arr.length-i-1]+" ");
                        }
                }
                   
                
                        
}
作者: 袁梦希    时间: 2013-5-21 17:25
非常好,刘磊,继续努力。需要这种问题
作者: 刘正祥    时间: 2013-5-21 17:49
如果只是反序输出而不用交换数组的值  ,  楼主想复杂了

直接定义 i 的初始值为 arr.length - 1  ;然后  i - - 就行了
  1. class Test   
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] arr=new int[]{1,2,3,4,5,6};
  6.                 revArray(arr);         
  7.         }
  8.         public static void revArray(int arr[])
  9.         {
  10.                  for(int i = arr.length-1;i>=0;i--)
  11.                 {
  12.                        System.out.print(arr[i]+" ");
  13.                  }                        
  14.          }      
  15. }
复制代码

作者: 石贤芝    时间: 2013-5-21 19:59
楼上答得都不错啊。

兄弟,下面是按你的思维方式来加上的条件。可以通过验证。
  1. class Demo3 {
  2.         public static void main(String[] args) {
  3.                 int[] arr = new int[] { 1, 2, 3, 4, 5, 6 };

  4.                 revArray(arr);

  5.                 for (int x = 0; x < arr.length; x++)

  6.                         System.out.print(arr[x]);

  7.         }

  8.         //用这个方法来反序
  9.         public static void revArray(int arr[]){
  10.                
  11.                 for(int start=0, end=arr.length-1; start<arr.length; start++)
  12.                 {
  13.                         if(start<end){
  14.                                 int m=arr[start];
  15.                         arr[start]=arr[end];
  16.                         arr[end]=m;
  17.                         end--;
  18.                         } else{
  19.                                 // 什么也不做
  20.                         }
  21.                 }
  22.      }
  23. }
复制代码

作者: liuelxiwd    时间: 2013-5-21 20:05
非常感谢位!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2