编程语言
首页 > 编程语言> > java-如何确定类型为int的值是否匹配数组?

java-如何确定类型为int的值是否匹配数组?

作者:互联网

这是我到目前为止的代码

    int []d = {2,18,4,4,6,8,10}; 
    int matchNumber = 4 ;
    i=0 ;

    for(i= 0; (match==d[i])&&(i < MAX_SIZE-1); i++); 
    { 
    if(matchNumber==d[i]) 
    { 
    System.out.println("Match number " + matchNumber + " appears in array d at index " + d[i]);

    }
    else 
    {

    System.out.print("-1");}
    }

如果int是匹配项,则我必须显示它出现在数组中的第一个索引,否则,我必须显示-1.看来应该是这样写的,但是我一直得到-1作为答案.我如何保持相同的格式,因为我只能使用什么格式来获取正确的输出.

解决方法:

1)出现在索引i而不是d [i].那就是问题所在.我是你的索引.那就是您要打印的内容,而不是值d [i].我将索引打印出来,打破循环.

2)另外,您不应该具有println(“-1”);在循环内.如果找不到该值,则只希望将其打印出来.因此,我添加了一个布尔语句.如果找到该值,则等于true.如果找不到,那么我有一条打印语句以打印-1.

3)另外,也许您只是想让我<在循环中停止语句时的d.length. 4)另一个巨大的问题是;在for循环的末尾.我也解决了.的;甚至在循环开始之前就结束循环. 5)另外,您不需要循环外的i = 0.我在循环内添加了int i = 0声明.如果要保持原来的状态,则i = 0应该是int i = 0;否则,i = 0.

int []d = {2,18,4,4,6,8,10}; 
int matchNumber = 4 ;
boolean found = false;
for(i= 0; i < d.length; i++)
{ 
    if(matchNumber==d[i]) 
    { 
        System.out.println("Match number " + matchNumber 
                       + " appears in array d at index " + i);
        found = true;
        break;

    }
}

if (!found) System.out.println("-1");

编辑:使用while循环

int []d = {2,18,4,4,6,8,10}; 
int matchNumber = 4 ;
boolean found = false;

int i = 0;
while (!found && i < d.length) {
    if (matchNumber == d[i]){
        System.out.println("Match number " + matchNumber 
                          + " appears in array d at index " + i);
        found = true;
    }
    i++;
}

if (!found) System.out.println("-1");

标签:for-loop,int,arrays,java
来源: https://codeday.me/bug/20191122/2060075.html