java - 向量循环的 Java 输入错误,直到正确为止
问题描述
我需要放置一个由用户输入数量选择的数字,仅在 1 到 60 之间的数字,小于 1 和大于 60 的值应该是无效的......并要求输入新的输入。
问题是,我不知道如何重复这个问题并将插入错误值的向量方块替换为正确的值。
例如:它一直在询问值,忽略它是错误的并稍后显示它......例如vector[6],最后的值显示为:[45,34,23,22,11,99 ] 或 [45, 55, 34, 99, 99, 99]
我的任务:开发一种记录投注的算法。玩家可以投注 6 到 15 个数字,介于 1 到 60 之间。然后算法必须要求通知用户:
- 您投注的数字数量;
- 接收投注(1 到 60 之间);
- 显示按顺序下的赌注;
- 显示要收取的金额(按照我给出的表格)。
我的尝试:
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);
}
解决方案
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);
}
推荐阅读
- javascript - 无法通过 HTTP GET 请求存储数据 - 可能是可观察/异步订单问题
- c - C 将 MyType* 的函数转换为 void* 的函数
- sql - 在运行时是否有更清洁(即更快)的方式在 SQL 中进行计算?
- pine-script - “参考长度 max_bars_back”错误的问题
- r - R中的嵌套for循环,其中第二个索引在第一个索引内计数
- python - 从数据帧生成具有不同手段的场景
- javascript - JavaScript 对象在 for 循环中仅存储最新值
- r - 如何绘制多个 y 的回归线
- haskell - Haskell:有没有简单的方法来检查两个字符串是否有相同的字符?
- grafana - 无法从 Clickhouse 数据源绘制 Grafana 中的数据