for(j = 0; j < nelame; j++)
if(arr[j] == searchkey)
break;
if(j == nelame)
System.out.println("没找到");
else
System.out.println("找到" + searchkey);和
for(j = 0; j < nelame; j++)
{
if(arr[j] == searchkey)
break;
if(j == nelame)
System.out.println("没找到");
else
System.out.println("找到" + searchkey);
}不一样 谁能帮我解释一下第一个循环是怎么运行的啊??

解决方案 »

  1.   

    for(j = 0; j < nelame; j++)
    if(arr[j] == searchkey)
    break;
    就循环执行这两行
      

  2.   

    因为不带括号就执行for(j = 0; j < nelame; j++)
    这行的后一个语句,这里即
    if(arr[j] == searchkey)
    break;
      

  3.   

    没有括号只执行for后边的一条语句.前一个是正确的.后一个的
    if(j == nelame)
    System.out.println("没找到");
    永远不可能执行到,因为j < nelame时已经跳出循环了
    结果是打印了N次"找到". N=所找位置的下标(存在时)/nelame(不存在)
      

  4.   

    不带括号那就执行for下面的第一行语句,因为if也有这个特性,所以if里面包含执行break;,而for是包含这个if,也就是只会执行
    if(arr[j] == searchkey)
      break;
    这两行,在执行完所有for循环或者通过break跳出后,才会执行
    if(j == nelame)
    System.out.println("没找到");
    else
    System.out.println("找到" + searchkey);
    这些语句
      

  5.   

    前一个=:
    for(j = 0; j < nelame; j++)
    {
        if(arr[j] == searchkey)
            break;
    }
    if(j == nelame)
        System.out.println("没找到");
    else  System.out.println("找到" + searchkey);
      

  6.   

    if(arr[j] == searchkey)
    break;
      

  7.   

    前一个=:
    for(j = 0; j < nelame; j++)
    {
        if(arr[j] == searchkey)
            break;
    }
    if(j == nelame)
        System.out.println("没找到");
    else  System.out.println("找到" + searchkey);