本帖最后由 小转铃 于 2015-9-19 18:56 编辑
老师布置了一个课后作业,我试着写了一个代码,但是其中有一个问题一直想不出解决方法,所以来请教大家
我的这个代码,最后一部分,如果想要索引的数据在数组里有多个,就只会显示第一个,如果在第一个if语句中不加入break,那么无论是否找到索引,都会后面再多打印一句“找不到数据”;
我感觉应该是我写的这个for循环有问题,请问要怎么解决呢,想了一中午了,改来改去一直弄不明白
希望大家能不吝赐教,教教我怎么改
先感谢诸位!
-------------------------------------------------------------------------------------------------------------------------------------------结合了回复后终于想出了解决方法,问题已解决
- /*8、需求:
- 1、键盘录入数组长度
- 2、键盘录入数组的每个元素
- 3、打印数组
- 4、键盘录入查找数据
- 5、返回查找数据的索引
- */
- import java.util.Scanner;
- class demo_ex1 {
- public static void main(String[] args){
- System.out.print("请输入数组长度:");
- Scanner sc = new Scanner(System.in);
- int x = sc.nextInt();
- if(x>0){
- int[] arr = new int[x];
- for(int i=0;i<x;i++){
- System.out.print("请输入数组第"+(i+1)+"位数"+":");
- arr[i] = sc.nextInt();}
- for(int i=0;i<arr.length;i++){
- System.out.println(arr[i]);}
-
- System.out.print("请输入需要查找数组索引的数据:");
- int search = sc.nextInt();
- int a =0; //加入了一个变量判断是否找到索引数据
- for(int i=0;i<arr.length;i++){
- if(arr[i]==search){
- a++; //找到了索引数据后,变量自增,这个变量写成boolean类型应该更好,不过差不多
- System.out.println("该数据的索引是:"+i);
- }
- else {
- if(a==0&&i==arr.length-1){
- System.out.println("找不到数据");
- }else{
- }
-
- }
-
- }}
- else
- System.out.println("长度不合法");
-
-
-
- }
- }
-
复制代码
- /*8、需求:
- 1、键盘录入数组长度
- 2、键盘录入数组的每个元素
- 3、打印数组
- 4、键盘录入查找数据
- 5、返回查找数据的索引
- */
- import java.util.Scanner;
- class demo_ex1 {
- public static void main(String[] args){
- System.out.print("请输入数组长度:");
- Scanner sc = new Scanner(System.in);
- int x = sc.nextInt();
- if(x>0){
- int[] arr = new int[x];
- for(int i=0;i<x;i++){
- System.out.print("请输入数组第"+(i+1)+"位数"+":");
- arr[i] = sc.nextInt();}
- for(int i=0;i<arr.length;i++){
- System.out.println(arr[i]);}
-
- System.out.print("请输入需要查找数组索引的数据:");
- int search = sc.nextInt();
- for(int i=0;i<arr.length;i++){
- if(arr[i]==search){
- System.out.println("该数据的索引是:"+i);break;
- }
- else if(arr[i]!=search&&i==arr.length-1){
- System.out.println("找不到数据");
- }
-
- }}
- else
- System.out.println("长度不合法");
-
-
-
- }
- }
-
复制代码
|
|