Java 向量循环输入错误直到正确
Java Wrong Input For Vector Loop Until Correct
我需要输入一个用户输入的数量,只能在1到60之间的数字,小于1和大于60的值应该是无效的...并要求重新输入。
问题是,我不知道如何重复问题并将插入错误值的矢量方块替换为正确值。
例如:它一直在询问值,忽略它的错误并稍后显示...
例如vector[6],最后的值显示为:[45, 34, 23, 22, 11, 99] or [45, 55, 34, 99, 99, 99]
我的任务:开发一种记录赌注的算法。玩家可以执行
下注 6 到 15 个数字,介于 1 到 60 之间。然后算法必须要求
通知用户:
- 您下注的号码数量;
- 接收投注(1到60之间);
- 按顺序显示下注;
- 显示要为此收取的金额(在 table 我得到之后)。
我的尝试:
Scanner teclado = new Scanner(System.in);
System.out.println("How many bets from 6 to 15?");
int qntd = teclado.nextInt();
int c;
int i = 0;
if ((qntd < 6) || (qntd > 15)){
System.out.println("Only 6 to 15 values.");
} else {
int[] bets = new int [qntd];
for (c=0; c<=bets.length-1; c++ ){
i++;
System.out.println("Choose a number ");
bets[c] = teclado.nextInt();
if ((bets[c] < 1) || (bets[c]>60)) {
System.out.println("Only 1 to 60 values.");
}
}
Arrays.sort(bets);
System.out.print("Realized bets [");
for (int valor: bets){
System.out.print( " " + valor );
}
System.out.println(" ]");
System.out.println(" ]");
String pr = null;
int vlr = qntd;
switch (vlr){
case 6 :
pr = "4,50.";
break;
case 7 :
pr = "31,50.";
break;
case 8 :
pr = "126,00.";
break;
case 9 :
pr = "378,00.";
break;
case 10 :
pr = "945,00.";
break;
case 11 :
pr = "2.079,00.";
break;
case 12 :
pr = "4.158,00.";
break;
case 13:
pr = "7.722,00,";
break;
case 14 :
pr = "13.513,50.";
break;
case 15 :
pr = "22.522,50.";
}
System.out.println("Bets value is R$ " + pr);
}
您不必向数组中插入无效输入。
int c=0;
while(c<bets.length){
System.out.println("Choose a number ");
int input = teclado.nextInt();
if ((input < 1) || (input > 60)) {
System.out.println("Only 1 to 60 values.");
continue;
}
bets[c]=input;
c++;
}
对于无效输入,循环将继续而不将输入添加到数组。此外 c
只会针对有效输入递增。
Scanner teclado = new Scanner(System.in);
System.out.println("How many bets from 6 to 15?");
int qntd = 0;
int c;
int i = 0;
while(!(qntd >6 && qntd < 15))
{
qntd = teclado.nextInt();
if(!(qntd >=6 && qntd <= 15))
{
System.out.println("Only 6 to 15 values.");
}
}
int[] bets = new int [qntd];
for (c=0; c<=qntd-1; c++ )
{
bets[c] = 0;
while((bets[c] < 1) || (bets[c]>60))
{
bets[c] = teclado.nextInt();
if ((bets[c] < 1) || (bets[c]>60))
{
System.out.println("Only 1 to 60 values.");
}
}
}
Arrays.sort(bets);
System.out.print("Realized bets [");
for (int valor: bets){
System.out.print( " " + valor );
}
System.out.println(" ]");
System.out.println(" ]");
String pr = null;
int vlr = qntd;
switch (vlr){
case 6 :
pr = "4,50.";
break;
case 7 :
pr = "31,50.";
break;
case 8 :
pr = "126,00.";
break;
case 9 :
pr = "378,00.";
break;
case 10 :
pr = "945,00.";
break;
case 11 :
pr = "2.079,00.";
break;
case 12 :
pr = "4.158,00.";
break;
case 13:
pr = "7.722,00,";
break;
case 14 :
pr = "13.513,50.";
break;
case 15 :
pr = "22.522,50.";
}
System.out.println("Bets value is R$ " + pr);
}
我需要输入一个用户输入的数量,只能在1到60之间的数字,小于1和大于60的值应该是无效的...并要求重新输入。
问题是,我不知道如何重复问题并将插入错误值的矢量方块替换为正确值。
例如:它一直在询问值,忽略它的错误并稍后显示... 例如vector[6],最后的值显示为:[45, 34, 23, 22, 11, 99] or [45, 55, 34, 99, 99, 99]
我的任务:开发一种记录赌注的算法。玩家可以执行 下注 6 到 15 个数字,介于 1 到 60 之间。然后算法必须要求 通知用户:
- 您下注的号码数量;
- 接收投注(1到60之间);
- 按顺序显示下注;
- 显示要为此收取的金额(在 table 我得到之后)。
我的尝试:
Scanner teclado = new Scanner(System.in);
System.out.println("How many bets from 6 to 15?");
int qntd = teclado.nextInt();
int c;
int i = 0;
if ((qntd < 6) || (qntd > 15)){
System.out.println("Only 6 to 15 values.");
} else {
int[] bets = new int [qntd];
for (c=0; c<=bets.length-1; c++ ){
i++;
System.out.println("Choose a number ");
bets[c] = teclado.nextInt();
if ((bets[c] < 1) || (bets[c]>60)) {
System.out.println("Only 1 to 60 values.");
}
}
Arrays.sort(bets);
System.out.print("Realized bets [");
for (int valor: bets){
System.out.print( " " + valor );
}
System.out.println(" ]");
System.out.println(" ]");
String pr = null;
int vlr = qntd;
switch (vlr){
case 6 :
pr = "4,50.";
break;
case 7 :
pr = "31,50.";
break;
case 8 :
pr = "126,00.";
break;
case 9 :
pr = "378,00.";
break;
case 10 :
pr = "945,00.";
break;
case 11 :
pr = "2.079,00.";
break;
case 12 :
pr = "4.158,00.";
break;
case 13:
pr = "7.722,00,";
break;
case 14 :
pr = "13.513,50.";
break;
case 15 :
pr = "22.522,50.";
}
System.out.println("Bets value is R$ " + pr);
}
您不必向数组中插入无效输入。
int c=0;
while(c<bets.length){
System.out.println("Choose a number ");
int input = teclado.nextInt();
if ((input < 1) || (input > 60)) {
System.out.println("Only 1 to 60 values.");
continue;
}
bets[c]=input;
c++;
}
对于无效输入,循环将继续而不将输入添加到数组。此外 c
只会针对有效输入递增。
Scanner teclado = new Scanner(System.in);
System.out.println("How many bets from 6 to 15?");
int qntd = 0;
int c;
int i = 0;
while(!(qntd >6 && qntd < 15))
{
qntd = teclado.nextInt();
if(!(qntd >=6 && qntd <= 15))
{
System.out.println("Only 6 to 15 values.");
}
}
int[] bets = new int [qntd];
for (c=0; c<=qntd-1; c++ )
{
bets[c] = 0;
while((bets[c] < 1) || (bets[c]>60))
{
bets[c] = teclado.nextInt();
if ((bets[c] < 1) || (bets[c]>60))
{
System.out.println("Only 1 to 60 values.");
}
}
}
Arrays.sort(bets);
System.out.print("Realized bets [");
for (int valor: bets){
System.out.print( " " + valor );
}
System.out.println(" ]");
System.out.println(" ]");
String pr = null;
int vlr = qntd;
switch (vlr){
case 6 :
pr = "4,50.";
break;
case 7 :
pr = "31,50.";
break;
case 8 :
pr = "126,00.";
break;
case 9 :
pr = "378,00.";
break;
case 10 :
pr = "945,00.";
break;
case 11 :
pr = "2.079,00.";
break;
case 12 :
pr = "4.158,00.";
break;
case 13:
pr = "7.722,00,";
break;
case 14 :
pr = "13.513,50.";
break;
case 15 :
pr = "22.522,50.";
}
System.out.println("Bets value is R$ " + pr);
}