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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© brouse 中级黑马   /  2015-5-6 21:24  /  451 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天写了一个程序,如下,在遍历数组后,如果找到该数,怎么才能不输出第二个语句?
class Arr
{
    public void getNumber(int [] arr,int key)
    {
        for(int x=0 , x<arr.length , x++)
            {
                if(arr[x]==key)
                    System.out.println("you get it,it's"+x);
            }   
         System.out.println("the number is not existance");
}
}
class ArrTest
{
    public static void main(String[] args)
    {
        int [] b={2,5,7,1,4};
        Arr.a=new Arr();
        a.getNumber(arr,5);
        
     }
}
结果如果是不存在的话,会输出“the number is not existance”,这没什么问题,但是如果是在数组中存在的数,就会输出“"you get it,it's"+x”,但同时会吧不存在时的语句“the number is not existance”再输出一遍,用两个if的话也不行,我在if下加了一个else if(arr[x]!=key&&x=arr.length-1),想用最后也没找到的话就输出“the number is not existance”,结果也不行,大神们,谁能给破了?

  我就是想如果给的数是属于数组的话就仅仅输出"you get it,it's"+x,如果找不到就仅仅输出“the number is not existance”,因为我把第二个语句放进循环中就会被多次执行,求解!

6 个回复

倒序浏览
if(arr[x]==key)
System.out.println("you get it,it's"+x);
加一个
else if (x==arr.length -1)
{
System.out.println("the number is not existance");
}
回复 使用道具 举报
学习啦,,,
回复 使用道具 举报
改成这样就可以了
if(arr[a]==key){
                        System.out.println("you get it,it's"+a);
                        return;
                }
回复 使用道具 举报
{:2_32:}{:2_32:}{:2_32:}{:2_32:}{:2_32:}
回复 使用道具 举报
试验下就知道了
回复 使用道具 举报
小心被逮到
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马