我有一个int
数组,我试图找出如何创建程序,以便通过将值分配给int
数组的元素来存储用户输入的整数秒。我正在尝试放置代码,以便它接受来自用户的循环(while或for循环)执行10次的整数。然后有代码检查整数序列,看看它在另一个使用两个独立循环执行9次的循环中不减少。以下是我必须从中形成这个“Checker”。
class ArrayRecorder {
public static void main(String[] args) {
int Array[] = new int[10];
System.out.println("Enter ten integers seperated by spaces, then press return after. ");
for(int count = 0; count < 10; count++)
Array[count] = A3Helper.nextInteger();
for (int count = 0; count < 10; count++ )
System.out.print(Array[count]+ " ");
对不起,如果这看起来像个愚蠢的问题,我想我是在思考它。我试图修改代码,但无法弄明白,下面是我已经开始的。
class ArrayChecker {
public static void main(String[] args) {
int Array[] = new int[10];
System.out.println("Enter ten integers seperated by spaces, then press return after. ");
for(int count = 0; count < 10; count++)
Array[count] = A3Helper.nextInteger();
System.out.print("List is in order");
以下是程序输入和输出的外观示例 喜欢: 输入以空格分隔的十个整数,然后按Return键。 10 3 0 -4 200 80 -95 87 23 -67 列表不按顺序。
这是另一个例子: 输入以空格分隔的十个整数,然后按Return键。 -5 -4 -3 0 1 2 2 3 10 11 列表是按顺序
也是A3Helper代码:
import java.util.Scanner;
class A3Helper {
static Scanner keyboard = new Scanner(System.in);
static int nextInteger() {
return keyboard.nextInt();
}
}
答案 0 :(得分:1)
只需检查每个连续数字是否大于之前的数字。如果没有,您只需更改一个布尔值,指示数组是否有序并打印出不同的字符串。
boolean inOrder = true;
for (int count = 0; count < 9; count++) {
if (Array[count + 1] < Array[count]) {
inOrder = false;
break;
}
}
if (inOrder) {
System.out.println("Array is in order.");
} else {
System.out.println("Array is not in order.");
}
请注意,我们只是循环遍历数组索引0到8,而不是9,因为否则Array[count + 1]
将导致ArrayIndexOutOfBoundsException
。
答案 1 :(得分:0)
你快到了。你缺少的是在循环中进行实际比较并将结果存储在某处:
boolean listIsInOrder = true;
for (int i = 1; i < 10; i++) {
if (array[i] < array[i-1]) {
listIsInOrder = false;
}
}
这里我们使用布尔值listIsInOrder
来存储列表是否有序。
循环从索引1
而不是0
开始,因为在循环内部我们总是将索引i
的每个值与它之前的值进行比较,该值在索引{{1 }}
一旦循环找到的值小于之前的值,就会将i-1
设置为false。如果数组中的所有值都是有序的,listIsInOrder
将不会更改并保持listIsInOrder
。
然后,您可以简单地检查true
:
listIsInOrder
请注意我已重命名您的数组,因为Java中的变量名称应以小写字母开头。大写字母用于类名。坚持这些约定使您的代码更具可读性。