1.题目:
定义一个长度为6的数组,使用随机数生成范围[10,30]之间的随机数,保存到数组元素中。再键盘录入一个整数number,查找数组中是否存在这个整数,如果有则输出这个数字在数组中的索引,如果有多个,则输出第一个出现的索引。如果没有,则提示该数字不存在于数组中。
2.切分题干w
Ⅰ定义一个长度为6的数组,使用随机数生成范围[10,30]之间的随机数,保存到数组元素中
这一句我们能从中提取出 有关 动态初始化数组 任意随机数的使用
Ⅱ再键盘录入一个整数number
这里要运用到Scanner
Ⅲ 查找数组中是否存在这个整数
这里要运用到判断语句 ==
Ⅳ如果有则输出这个数字在数组中的索引,如果有多个,则输出第一个出现的索引。如果没有,则提示该数字不存在于数组中。
这里提示我们要用到if 输出语句 for循环
3.开写
1.首先我们先完成步骤Ⅰ
Random r = new Random();
int[] num = new int[6]; //定义一个长度为6的数组,动态初始化数组
for (int i = 0; i < num.length; i++) {
int n = r.nextInt(21) + 10;
num[i] = n;
}//循环内完成将随机数存入数组的步骤
2.完成步骤Ⅱ
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个在10到30中的数判断是否在随机数组中:");
int in = sc.nextInt();
ⅢⅣ 如何完成 如果有多个,则输出第一个出现的索引 这一题目要求 如果没有,则提示该数字不存在于数组中
这里要用到一个可以被称为钓鱼的写法,先定义一个布尔值等于true 在循环判断中,如果首次出现数组的数与输入的数相等,就将布尔值改成false 并且加上break跳出循环,以达到输出第一个索引的需求
boolean choice = true;
for (int i = 0; i < num.length; i++) {
if (in == num[i]) {
System.out.println(i);
choice = false;
break;
}
}
在循环结束后如果输入数字不存在数组中,那么此时布尔值还是true , 这时便可以运用判断语句 来输出不存在于数组中这句话
if (choice) {
System.out.println("该数字不在随机数组中.");
}
这道题便完成了
完整代码如下
import java.util.Random;
import java.util.Scanner;
public class Test08 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random r = new Random();
int[] num = new int[6];
for (int i = 0; i < num.length; i++) {
int n = r.nextInt(21) + 10;
num[i] = n;
}
System.out.println("请输入一个在10到30中的数判断是否在随机数组中:");
int in = sc.nextInt();
boolean choice = true;
for (int i = 0; i < num.length; i++) {
if (in == num[i]) {
System.out.println(i);
choice = false;
break;
}
}
if (choice) {
System.out.println("该数字不在随机数组中.");
}
System.out.println("程序结束");
}
}