java - 如何在迭代多维数组后仅打印一次消息?

标签 java arrays for-loop

Scanner input = new Scanner(System.in);

int numInput;

int number[][] =  {
  {10, 20, 30}, 
  {15, 25, 35}, 
};

System.out.print("\n\tEnter a Number : ");

// Expected input 10

numInput = input.nextInt();
input.nextLine();

for (int i = 0; i < 2; i++) {
  for (int j = 0; j < 3; j++) {
    if (numInput == number[i][j]) {
      System.out.print("\n\tNumber " + numInput + " Found!");
      System.out.print("\n\tOn line " + i + " Column " +j);
    } else {
      System.out.print("\n\tNumber Not Found!");
    }
  }
}

如果用户输入 35,该程序将打印“Number 35 Found!”对于在数组中找到的数字或“未找到数字!”对于数组中的每个其他元素。

我希望它只打印一次。

最佳答案

看起来您需要将“Number not Found”的打印语句移到 for 循环之外。像这样:

Scanner input = new Scanner(System.in);

    int numInput;

    int number[][] =  { {10, 20, 30}, 
                        {15, 25, 35}, 
                    };

System.out.print("\n\tEnter a Number : ");

//Expected input 10

numInput = input.nextInt();
input.nextLine();

boolean found = false;

for (int i = 0; i < 2; i++) {

    for (int j = 0; j < 3; j++) {

        if (numInput == number[i][j]) {

            found = true;
            System.out.print("\n\tNumber " + numInput + " Found!");
            System.out.print("\n\tOn line " + i + " Column " +j);
        }
    }
}

if (!found) {
    System.out.print("\n\tNumber Not Found!");
}

按照您现在的方式,对于每个项目,它总是会打印“找到”或“未找到”。但是,如果您只想在最后打印一次,则需要某种标志来确定是否找到它,如果没有找到,则打印。

关于java - 如何在迭代多维数组后仅打印一次消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59721707/

相关文章:

java - 例如,Java 中的最佳实践是创建我自己的界面,而不是改造中现有的界面

java - 您的网络浏览器必须启用 JavaScript 才能正确显示此应用程序

c++ - 在 C 和 C++ 中通过 index[array] 访问数组

javascript - 为什么for-in循环不能有多个变量声明?

java - 以编程方式检索 Internet Explorer 缓存的代理用户名

java - JMenu Action 监听器

arrays - 将字符串添加到动态数组 VBA

javascript - 如何以数组格式保存值?

javascript - 如何删除 for 循环的第一部分?

c++ - 如何在 C++ 的一个项目中访问所有具有相同类型/类的对象?