A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 jiyixuan 于 2012-4-30 08:08 编辑


//查找5,有5:输出"有5,排在数组中的第几位";没有5,输出“没有5”。

class FindoutFive

{
        public static void main(String[] args)
        {
                int[] data = { 1, 2, 5, 443, 41 };
                for (int i = 0; i < data.length; i++)
                {
                        if (data == 5)
                        {
                                System.out.println("有5,排在数组中的第" + (i+1)+"位");
                                return;
                        }
               
                System.out.println("没有5");
                }
        }
}


运行结果为:
没有5
没有5
有5,排在数组的第3位;

可是我只想输出5,或者只输出没有5,请高手指错呀。








4 个回复

正序浏览
哦啦,thanks anyway。
回复 使用道具 举报
  1. class FindoutFive

  2. {
  3. public static void main(String[] args)
  4. {
  5. int[] data = { 1, 2, 5, 443, 41 };
  6. for (int i = 0; i < data.length; i++)
  7. {
  8. /*
  9. 首先,之所以在“有5”前面还输出了两次“没有5”是因为在满足下面的data[i]==5之前
  10. 的判断中,对于data[0]=1和data[1]=2的两种不满足if中条件的语句后都运行了语句
  11. System.out.println("没有5");对于你想要的结果其实将语句System.out.println("没有5");
  12. 注释掉就可以了。
  13. */
  14. if (data[i] == 5)
  15. {
  16. System.out.println("有5,排在数组中的第" + (i+1)+"位");
  17. return;
  18. }

  19. //System.out.println("没有5");
  20. }
  21. }
  22. }
复制代码
解答在代码的注释部分,比较详细吧?
回复 使用道具 举报
本帖最后由 贾联国 于 2012-4-30 01:01 编辑

如果学到集合,用集合最方便,没有的话就只能将就用这个代码了:
  1. class FindFive

  2. {
  3. public static void main(String[] args)
  4. {
  5. int[] data = { 1, 2, 5, 443, 41 };
  6. boolean b= true;
  7. for (int i = 0; i < data.length; i++)
  8. {

  9. if (data[i] == 5)
  10. {
  11. System.out.println("有5,排在数组中的第" + (i+1)+"位");
  12. b =false;
  13. return;
  14. }


  15. }
  16. if (b)
  17. {
  18. System.out.println("没有5");

  19. }
  20. }
  21. }


复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马