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数组,这只会使事情变得复杂。