在java中的数组输入上放置一个范围
我是java编程新手。我想知道是否有一种方法可以用键盘上的整数(范围:10到65)填充数组。这是我的密码:在java中的数组输入上放置一个范围,java,arrays,Java,Arrays,我是java编程新手。我想知道是否有一种方法可以用键盘上的整数(范围:10到65)填充数组。这是我的密码: public static void main(String[] args) { //Keyboard Initialization Scanner kbin = new Scanner(System.in); //a.Declare an array to hold 10 intgers values int list[]=new int[1
public static void main(String[] args)
{
//Keyboard Initialization
Scanner kbin = new Scanner(System.in);
//a.Declare an array to hold 10 intgers values
int list[]=new int[10];
int i=0;
//b.Fill the array with intgers from the keyboard(range: 10 to 50).
System.out.print("\n\tInput numbers from 10 to 50: \n");
list[i]= kbin.nextInt();
if(10<=list[i] && list[i] <= 50)
{
for(i=1; i<=9;i++)
{
list [i] = kbin.nextInt();
}
}
}
publicstaticvoidmain(字符串[]args)
{
//键盘初始化
扫描仪kbin=新的扫描仪(System.in);
//a、 声明一个数组以容纳10个整数值
整数列表[]=新整数[10];
int i=0;
//b、 用键盘上的整数填充数组(范围:10到50)。
System.out.print(“\n\t输入10到50之间的数字:\n”);
list[i]=kbin.nextInt();
如果(10我真的不确定你想做什么。但是,我猜你是想拿用户输入的前10个数字
需要记住的一点是,java(和其他语言)使用基于0的索引
System.out.print("\n\tInput numbers from 10 to 50: \n");
for(int i=0; i<10;)
{
int k = kbin.nextInt();
if (k >= 10 && k <= 50)
{
list[i] = k;
++i;
}
}
System.out.print(“\n\t输入10到50之间的数字:\n”);
对于(int i=0;i=10&&k如果我正确理解您的意图
您需要循环,直到有10个有效数字。如果用户输入的数字超出范围,则需要将其丢弃
import java.util.Scanner;
public class TestStuff {
public static void main(String[] args) {
//Keyboard Initialization
Scanner kbin = new Scanner(System.in);
//a.Declare an array to hold 10 intgers values
int list[] = new int[10];
int i = 0;
System.out.print("\n\tInput numbers from 10 to 50: \n");
while (i < 10) {
//b.Fill the array with intgers from the keyboard(range: 10 to 50).
int value = kbin.nextInt();
if (value >= 10 && value <= 50) {
list[i] = value;
i++;
} else {
System.out.println("!! Bad number !!");
}
}
for (int value : list) {
System.out.println("..." + value);
}
}
}
虽然这个问题已经得到了回答,但我注意到没有人提供或谈论.hasNext()
regex方法,因此下面我将使用regex表达式回答这个问题:
import java.util.Scanner;
public class Main3 {
public static void main (String [] args) {
int list [] = new int [10];
for (int i = 0; i < 10; i ++) {
Scanner sc = new Scanner (System.in);
if (sc.hasNext("([1-4][0-9])?(50)?")) {
list[i] = sc.nextInt();
} else {
System.err.println("Entered value is out of range 10 - 50. Please enter a valid number");
i --;
}
}
for (int i = 0; i < 9; i ++) {
System.out.print(list[i] + " ");
}
System.out.println(list[9]);
}
}
import java.util.Scanner;
公共类main 3{
公共静态void main(字符串[]args){
整数列表[]=新整数[10];
对于(int i=0;i<10;i++){
扫描仪sc=新的扫描仪(System.in);
如果(sc.hasNext(([1-4][0-9])?(50)?){
list[i]=sc.nextInt();
}否则{
System.err.println(“输入的值超出范围10-50。请输入有效数字”);
我--;
}
}
对于(int i=0;i<9;i++){
系统输出打印(列表[i]+“”);
}
System.out.println(列表[9]);
}
}
不应如果(10@MadProgrammer是同一件事吗?我只是把它读错了,就是这样-我的逻辑是这样的:P@MadProgrammer它是从0开始的,在他进入循环之前,他用循环之前的第一个nextInt填充索引0。@Greg我试图用10到50的整数填充数组。我想限制用户输入的范围t、 你的思路是正确的,除了,如果用户未能输入有效的数字,数组的索引将不考虑增量,留下一个空值…@MadProgrammer很好。已修复。强制10位数字。不确定这是OP想要的,但进行了一些小的更改来调整它以执行其他操作。看起来比我的想法更好;)+1是否有一种方法可以填充空值?类似于这样,但数组中仍然填充了数字。什么是“仍然填充了数字”?因为如果用户输入的数字无效,列表中会出现[Something]将不会显示在输出上。是否有一种方法可以在不丢弃程序的情况下用有效数字填充整个数组列表?这就是示例所做的…我添加了一些示例输出:)
import java.util.Scanner;
public class Main3 {
public static void main (String [] args) {
int list [] = new int [10];
for (int i = 0; i < 10; i ++) {
Scanner sc = new Scanner (System.in);
if (sc.hasNext("([1-4][0-9])?(50)?")) {
list[i] = sc.nextInt();
} else {
System.err.println("Entered value is out of range 10 - 50. Please enter a valid number");
i --;
}
}
for (int i = 0; i < 9; i ++) {
System.out.print(list[i] + " ");
}
System.out.println(list[9]);
}
}