Java 2D阵列和扫描仪

Java 2D阵列和扫描仪,java,arrays,Java,Arrays,当我输入一个不在列表中的号码时,我试图显示“找不到号码”。。。 我想不出代码出了什么问题 我的代码: import java.util.*; public class Searchu { static Scanner console = new Scanner(System.in); public static void main(String[] args) { int [][] x = new int [1][5]; int k , z=0 , y

当我输入一个不在列表中的号码时,我试图显示“找不到号码”。。。 我想不出代码出了什么问题

我的代码:

import java.util.*;
public class Searchu {
static Scanner console = new Scanner(System.in);
    public static void main(String[] args) {

        int  [][] x = new int [1][5];
        int k , z=0 , y , item , item1 ;



        System.out.println( "Enter 5 numbers: ");

        for ( y= 0 ; y < 5 ; y++) 
            for ( z =0 ; z < 1 ; z++) 
                x[z][y] = console.nextInt();



        System.out.println( "Search Number: ");
        k = console.nextInt();
        for ( item= 0 ; item < 5 ; item++) {
            for ( item1= 0 ; item1 < 1 ; item1++) {


                    if (x[item1][item] == k) {
                        System.out.println( " Position: "+  (item+1));

                        break;
                        }}}


        if (x[z][y] == 5)
            System.out.print("Number not found...");


}}
import java.util.*;
公共类搜索{
静态扫描仪控制台=新扫描仪(System.in);
公共静态void main(字符串[]args){
int[]x=新int[1][5];
整数k,z=0,y,项,项1;
System.out.println(“输入5个数字:”);
对于(y=0;y<5;y++)
对于(z=0;z<1;z++)
x[z][y]=console.nextInt();
System.out.println(“搜索号:”);
k=console.nextInt();
对于(项=0;项<5;项++){
对于(item1=0;item1<1;item1++){
如果(x[项目1][项目]==k){
系统输出打印项次(“位置:”+(项+1));
打破
}}}
如果(x[z][y]==5)
系统输出打印(“未找到编号…”);
}}

您的错误是最后一次检查。我添加了一个关于我们是否找到号码的标志。我同意你的意见,你不需要使用2D数组

public static void main(String[] args) {
    int[][] x = new int[1][5];
    int k, z = 0, y, item, item1;

    System.out.println("Enter 5 numbers: ");

    for (y = 0; y < 5; y++)
        for (z = 0; z < 1; z++)
            x[z][y] = console.nextInt();


    System.out.println("Search Number: ");
    k = console.nextInt();
    boolean isFound = false;
    for (item = 0; item < 5; item++) {
        for (item1 = 0; item1 < 1; item1++) {
            if (x[item1][item] == k) {
                System.out.println(" Position: " + (item + 1));
                isFound = true;
                break;
            }
        }
    }

    if (!isFound)
        System.out.print("Number not found...");
}
publicstaticvoidmain(字符串[]args){
int[]x=新int[1][5];
整数k,z=0,y,项,项1;
System.out.println(“输入5个数字:”);
对于(y=0;y<5;y++)
对于(z=0;z<1;z++)
x[z][y]=console.nextInt();
System.out.println(“搜索号:”);
k=console.nextInt();
布尔值isFound=false;
对于(项=0;项<5;项++){
对于(item1=0;item1<1;item1++){
如果(x[项目1][项目]==k){
系统输出打印项次(“位置:”+(项+1));
isFound=true;
打破
}
}
}
如果(!isFound)
系统输出打印(“未找到编号…”);
}
如果使用一维数组,则代码如下所示:

public static void main(String[] args) {
    int[] array = new int[5];
    int target;

    System.out.println("Enter 5 numbers: ");

    for (int i = 0; i < 5; i++) {
        array[i] = console.nextInt();
    }

    System.out.println("Search Number: ");
    target = console.nextInt();
    boolean isFound = false;
    for (int i = 0; i < 5; i++) {
        if (array[i] == target) {
            System.out.println("Position: " + (i + 1));
            isFound = true;
            break;
        }
    }

    if (!isFound) {
        System.out.print("Number not found...");
    }
}
publicstaticvoidmain(字符串[]args){
int[]数组=新的int[5];
int目标;
System.out.println(“输入5个数字:”);
对于(int i=0;i<5;i++){
数组[i]=console.nextInt();
}
System.out.println(“搜索号:”);
target=console.nextInt();
布尔值isFound=false;
对于(int i=0;i<5;i++){
if(数组[i]==目标){
System.out.println(“位置:”+(i+1));
isFound=true;
打破
}
}
如果(!isFound){
系统输出打印(“未找到编号…”);
}
}

只需创建一个Arraylist并添加其中的所有元素。ArrayList不太复杂,更适合这种特殊情况。无论何时需要检查列表中是否存在任何元素,只要使用contains方法即可

import java.util.*;

public class Searchu {

    static Scanner console = new Scanner(System.in);

    public static void main(String[] args) {

        ArrayList<Integer> x = new ArrayList<>();
        int k, z = 0, y, item, item1;

        System.out.println( "Enter 5 numbers: ");
        for ( y= 0 ; y < 5 ; y++) 
             x.add(console.nextInt());

        System.out.println( "Search Number: ");
        k = console.nextInt();

        if(x.contains(k)){
            System.out.println("found");
        } else {
            System.out.println("not found");
       }
   }
}
import java.util.*;
公共类搜索{
静态扫描仪控制台=新扫描仪(System.in);
公共静态void main(字符串[]args){
ArrayList x=新的ArrayList();
整数k,z=0,y,项,项1;
System.out.println(“输入5个数字:”);
对于(y=0;y<5;y++)
x、 添加(console.nextInt());
System.out.println(“搜索号:”);
k=console.nextInt();
如果(x.k)){
System.out.println(“找到”);
}否则{
System.out.println(“未找到”);
}
}
}

请验证您的itemindex何时处于限制(5),并标记第一个“for”,以中断所有搜索迭代

public static void main(String[] args) {

    int[][] x = new int[1][5];
    int k, z = 0, y, item, item1;


    System.out.println("Enter 5 numbers: ");

    for (y = 0; y < 5; y++)
        for (z = 0; z < 1; z++)
            x[z][y] = console.nextInt();

    System.out.println("Search Number: ");
    k = console.nextInt();

    ext:
    for (item = 0; item < 5; item++) {
        for (item1 = 0; item1 < 1; item1++) {
            if (x[item1][item] == k) {
                System.out.println(" Position: " + (item + 1));
                break ext;
            }
        }
    }

    if (item == 5)
        System.out.print("Number not found...");

}
publicstaticvoidmain(字符串[]args){
int[]x=新int[1][5];
整数k,z=0,y,项,项1;
System.out.println(“输入5个数字:”);
对于(y=0;y<5;y++)
对于(z=0;z<1;z++)
x[z][y]=console.nextInt();
System.out.println(“搜索号:”);
k=console.nextInt();
提取:
对于(项=0;项<5;项++){
对于(item1=0;item1<1;item1++){
如果(x[项目1][项目]==k){
系统输出打印项次(“位置:”+(项+1));
中断ext;
}
}
}
如果(项目==5)
系统输出打印(“未找到编号…”);
}
使用“中断”按钮,您仅从第二个for循环退出,请尝试以下代码

      import java.util.*;
      public class Searchu {
      static Scanner console = new Scanner(System.in);
      public static void main(String[] args) {

    int  [][] x = new int [1][5];
    int k , z=0 , y , item , item1,pos=0 ;
    boolean flag=false;
    System.out.println( "Enter 5 numbers: ");
    for ( y= 0 ; y < 5 ; y++) 
        for ( z =0 ; z < 1 ; z++)           
            x[z][y] = console.nextInt();
    System.out.println( "Search Number: ");
    k = console.nextInt();
    for ( item= 0 ; item < 5 ; item++) {
        for ( item1= 0 ; item1 < 1 ; item1++) {              
                if (x[item1][item] == k) {

                    flag=true;
                    pos=item+1;
                    }}}
       if(flag)
       {
        System.out.println( " Position: "+  (pos));
       }
        else
        {
        System.out.print("Number not found...");
        }
}}  
import java.util.*;
公共类搜索{
静态扫描仪控制台=新扫描仪(System.in);
公共静态void main(字符串[]args){
int[]x=新int[1][5];
整数k,z=0,y,项目,项目1,位置=0;
布尔标志=假;
System.out.println(“输入5个数字:”);
对于(y=0;y<5;y++)
对于(z=0;z<1;z++)
x[z][y]=console.nextInt();
System.out.println(“搜索号:”);
k=console.nextInt();
对于(项=0;项<5;项++){
对于(item1=0;item1<1;item1++){
如果(x[项目1][项目]==k){
flag=true;
pos=项目+1;
}}}
国际单项体育联合会(旗)
{
System.out.println(“位置:”+(pos));
}
其他的
{
系统输出打印(“未找到编号…”);
}
}}  

如果(x[z][y]==5)尝试检查是什么?为什么需要2D数组,这只会使事情变得复杂。