gpt4 book ai didi

java - 使用 if 和 while 接受数组中的元素

转载 作者:行者123 更新时间:2023-12-01 18:37:08 24 4
gpt4 key购买 nike

我编写了一个程序,该程序具有由 4 个元素组成的数组,并且仅接受从 1 到 4 的数字(1、2、3、4) 每次我提示用户提供输入(仅 1,2,3,4)并且每次我检查数组是否已经有这个输入......如果它有这个元素,那么如果没有,用户必须提供另一个数字,然后将该元素存储在数组中。

这是我的代码:-

import java.util.*;
public class Arr{
public static void main(String[] args){
int[] arr = new int[4];
Scanner sc = new Scanner(System.in);
int number;
while(arr.length < 5){
System.out.print("Enter a number from 1-4 : ");
number = sc.nextInt();
if(number <= 0 || number > 4){
System.out.print("Rejected ! Please re-enter a number from 1-4 : ");
}
else{
for(int j = 0 ; j < arr.length ; j++){
if(number == arr[j]){
System.out.print("Already exists .. enter new number from 1-4 : ");
number = sc.nextInt();
}
else{
arr[j]=number;
break;
}
}
}
}
}
}

但是有些事情逻辑上出了问题,我无法弄清楚......帮助

最佳答案

while(arr.length < 5){

当您使用数组时,它具有固定大小。 arr.length始终为 4。出于同样的原因,您还必须跟踪“填充”了多少数组元素。

if(number <= 0 || number > 4){

您应该使用 whiledo-while 循环来不断重复提示,直到用户输入正确的输入。

arr[j]=number;

这会将第一个不匹配的数组元素设置为输入数字。我确信这不是您想要的。

如果您是初学者,最好写出程序如何运行的计划:

Ask user for input.
Check input if between 1 to 4.
Repeat asking user until valid input provided.
On valid input, check array if input already exists.
If yes, alert user and ask for input again.
If no, store input in the next available slot in array.

然后用它构建一个伪代码。示例:

have counter to track position in array (initialize to 0)
do
get input
if input >= 1 and input <= 4
loop: go through array from 0 to counter
if element at array = input
alert user
break loop
else if element at array is < 1 or > 4
set element as input
increment counter
break loop
while input < 1 or input > 4 or counter < array length

最后使用伪代码编写程序。

关于java - 使用 if 和 while 接受数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21510752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com