Java 步进阵列&;基于搜索项返回数组中匹配/不匹配的值
在我的Java 步进阵列&;基于搜索项返回数组中匹配/不匹配的值,java,arrays,for-loop,Java,Arrays,For Loop,在我的searchForANumber方法中,我试图显示是否在数组中找到一个数字。问题是,我正在使用andif,else来确定searchValue是否与for循环中的数组语句中的值匹配,当我这样做时,数组中的最后一个变量将被测试,我的返回值仅基于最终值。如何使返回短语基于数组中的所有元素,而不仅仅是最后一个元素?我是否使用一段时间,一段时间,切换循环?感谢您的帮助 import java.util.Scanner; public class Practice { public sta
searchForANumber
方法中,我试图显示是否在数组中找到一个数字。问题是,我正在使用andif,else
来确定searchValue
是否与for循环中的数组语句中的值匹配,当我这样做时,数组中的最后一个变量将被测试,我的返回值仅基于最终值。如何使返回短语基于数组中的所有元素,而不仅仅是最后一个元素?我是否使用一段时间,一段时间,切换循环?感谢您的帮助
import java.util.Scanner;
public class Practice {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Enter your minimum number: ");
int minNumber = input.nextInt();
System.out.println("Enter your maximum number: ");
int maxNumber = input.nextInt();
int[] array = new int[(maxNumber-minNumber)+1];
int[]readInArray = new int[maxNumber-minNumber+1];
readInArray=readNumbers(minNumber, maxNumber, array);
printNumbers(readInArray, minNumber);
searchForANumber(readInArray, minNumber);
sumNumbers(readInArray);
printBackward(readInArray);
}//end of main method
private static void printBackward(int[] readInArray) {
for (int i=(readInArray.length-1);i>0;i--){
System.out.print(readInArray[i] + " ");
}
}
private static void sumNumbers(int[] readInArray) {
int total = 0;
for (int i=0;i<readInArray.length;i++){
total = total + readInArray[i];
}
System.out.println(total);
}
private static void searchForANumber(int[] readInArray, int minNumber) {
Scanner input = new Scanner(System.in);
System.out.println("Enter number to search for: ");
int searchValue = input.nextInt();
boolean returnValue = false;
for (int i = 0; i < readInArray.length;i++) {
if (searchValue == readInArray[i])
returnValue=true;
break;
}// end of for
System.out.println(returnValue);
}
private static void printNumbers(int[] readInArray, int minNumber) {
for (int i = 0; i < readInArray.length;i++) {
System.out.print(readInArray[i] + " ");
minNumber++;
}
System.out.println(" ");
}
private static int[] readNumbers(int minNumber, int maxNumber, int[] array) {
for (int i = 0; i < array.length;i++) {// input grades for each students
array[i]=minNumber;
minNumber++;
} // end of for loop
return array;
} // end of readArray method
}//end of class
import java.util.Scanner;
公共课堂实践{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入您的最小编号:”);
int minNumber=input.nextInt();
System.out.println(“输入您的最大数字:”);
int maxNumber=input.nextInt();
int[]数组=新的int[(maxNumber-minNumber)+1];
int[]readInArray=new int[maxNumber minNumber+1];
readInArray=readNumbers(minNumber、maxNumber、array);
打印号码(readInArray、minNumber);
searchForANumber(readInArray,minNumber);
sumNumbers(readInArray);
向后打印(readInArray);
}//主方法结束
私有静态void printfackup(int[]readInArray){
对于(inti=(readInArray.length-1);i>0;i--){
System.out.print(readInArray[i]+“”);
}
}
私有静态void sumNumbers(int[]readInArray){
int-total=0;
对于(inti=0;i,可以用两种方法来实现
使您的方法searchForANumber
返回布尔值
private static boolean searchForANumber(int[] readInArray, int minNumber) {
//before for loop
for (int i = 0; i < readInArray.length;i++) {
if (searchValue == readInArray[i])
return true;
}
return false;
}
为什么不返回一个boolean
?您可以发布您的searchForANumber(…)方法?已发布,您只需向下滚动尝试将returnValue初始化为false,如果确实找到您要查找的内容,请将returnValue设置为true,然后跳出循环。@user1813598我进行了建议的修订,但我仍然很遗憾地收到相同的错误。boolean returnValue=false;for(int I=0;I
private static void searchForANumber(int[] readInArray, int minNumber) {
//before for loop
boolean found = false;
for (int i = 0; i < readInArray.length;i++) {
if (searchValue == readInArray[i]){
found = true;
break;
}
}
if(found)
System.out.println("Found");
else
System.out.println("Not Found");
}