Java 中的异常数组搜索
array search with exception in Java
你能帮我解决这个问题吗?我需要在数组中找到一个值,如果没有这样的值,则对其进行异常处理。
我在循环中做了 if else,它打印了 4 次 NOT FOUND。非常感谢。
public class Search {
public static int arraySearch(int [] array, int value){
for(int i = 0; i < array.length; i++){
if(array[i] == value){
System.out.println(value);
}
}
}
public static void main(String[] args) {
int [] array = { 23, 6, 9, 10};
arraySearch(array, 6);
}
}
这是一种方法。可以内置实际的异常抛出。
public class Search {
public static int arraySearch(int[] array, int value) {
int result = -1;
for (int i = 0; i < array.length && result < 0; i++) {
if (array[i] == value) {
// Found! We want to know the index. We know the value
result = i;
}
}
return result;
}
public static void main(String[] args) {
int[] array = { 23, 6, 9, 10 };
System.out.println(arraySearch(array, 6));
}
}
正如我在评论中指出的那样,在数组中搜索缺失元素时抛出异常并不是真正的最佳解决方案,但在另一条评论中你说这是一项要求,所以就这样吧。
我们需要做几件事
- 我们将抛出一个自定义异常,因为标准库中没有针对“我没有在数组中找到元素”的异常,并且有充分的理由;
arraySearch
方法需要声明抛出异常
arraySearch
方法应该return一个值,而不是打印它
- 如果没有值被 returned(即如果我们到达循环的末尾并且还没有 returned)
arraySearch
应该抛出我们的自定义异常
main
需要捕获异常并采取相应措施
这是代码。一定要看懂,不要随便复制粘贴。
public class Search {
private static class ElementNotFoundException extends Throwable {}
public static int arraySearch(int [] array, int value) throws ElementNotFoundException {
for(int i = 0; i < array.length; i++){
if(array[i] == value){
return value;
}
}
throw new ElementNotFoundException();
}
public static void main(String[] args) {
int [] array = { 23, 6, 9, 10};
try {
System.out.println(arraySearch(array, 60));
} catch (ElementNotFoundException e) {
System.out.println("Element not found");
}
}
}
最后,我怀疑你误解了你的作业,你实际上需要 return 你找到的元素的 index,而不是它的值(这不是很有用).我会把它作为练习留给你解决。
你能帮我解决这个问题吗?我需要在数组中找到一个值,如果没有这样的值,则对其进行异常处理。 我在循环中做了 if else,它打印了 4 次 NOT FOUND。非常感谢。
public class Search {
public static int arraySearch(int [] array, int value){
for(int i = 0; i < array.length; i++){
if(array[i] == value){
System.out.println(value);
}
}
}
public static void main(String[] args) {
int [] array = { 23, 6, 9, 10};
arraySearch(array, 6);
}
}
这是一种方法。可以内置实际的异常抛出。
public class Search {
public static int arraySearch(int[] array, int value) {
int result = -1;
for (int i = 0; i < array.length && result < 0; i++) {
if (array[i] == value) {
// Found! We want to know the index. We know the value
result = i;
}
}
return result;
}
public static void main(String[] args) {
int[] array = { 23, 6, 9, 10 };
System.out.println(arraySearch(array, 6));
}
}
正如我在评论中指出的那样,在数组中搜索缺失元素时抛出异常并不是真正的最佳解决方案,但在另一条评论中你说这是一项要求,所以就这样吧。
我们需要做几件事
- 我们将抛出一个自定义异常,因为标准库中没有针对“我没有在数组中找到元素”的异常,并且有充分的理由;
arraySearch
方法需要声明抛出异常arraySearch
方法应该return一个值,而不是打印它- 如果没有值被 returned(即如果我们到达循环的末尾并且还没有 returned)
arraySearch
应该抛出我们的自定义异常 main
需要捕获异常并采取相应措施
这是代码。一定要看懂,不要随便复制粘贴。
public class Search {
private static class ElementNotFoundException extends Throwable {}
public static int arraySearch(int [] array, int value) throws ElementNotFoundException {
for(int i = 0; i < array.length; i++){
if(array[i] == value){
return value;
}
}
throw new ElementNotFoundException();
}
public static void main(String[] args) {
int [] array = { 23, 6, 9, 10};
try {
System.out.println(arraySearch(array, 60));
} catch (ElementNotFoundException e) {
System.out.println("Element not found");
}
}
}
最后,我怀疑你误解了你的作业,你实际上需要 return 你找到的元素的 index,而不是它的值(这不是很有用).我会把它作为练习留给你解决。