首页 > 解决方案 > 向量循环的 Java 输入错误,直到正确为止

问题描述

我需要放置一个由用户输入数量选择的数字,仅在 1 到 60 之间的数字,小于 1 和大于 60 的值应该是无效的......并要求输入新的输入。

问题是,我不知道如何重复这个问题并将插入错误值的向量方块替换为正确的值。

例如:它一直在询问值,忽略它是错误的并稍后显示它......例如vector[6],最后的值显示为:[45,34,23,22,11,99 ] 或 [45, 55, 34, 99, 99, 99]

我的任务:开发一种记录投注的算法。玩家可以投注 6 到 15 个数字,介于 1 到 60 之间。然后算法必须要求通知用户:

  1. 您投注的数字数量;
  2. 接收投注(1 到 60 之间);
  3. 显示按顺序下的赌注;
  4. 显示要收取的金额(按照我给出的表格)。

我的尝试:

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);
}
    

标签: javaloopsif-statementvectornetbeans

解决方案


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);
  }

推荐阅读