Java自动值

标签 java for-loop

for(int limit1=1; limit1<=1; limit1++){
System.out.print("Number of criteria (Max: 5): ");
int n = Integer.parseInt(inpt.readLine());
System.out.println();
if (n>5 || n<1){
    System.out.println("Sorry the maximum limit is 5");
    System.out.println("Please try again");
    System.out.println();
    limit1=limit1-1;
    continue;
}
double[] arrayCrit = new double[n];
double[] arrayPerc= new double[n];
String[] arrayCritName = new String[n];
double percentage=0, check=0, cent=0;
for (int i = 0; i < n; i++){
  System.out.print("Criteria("+(i+1)+"): ");
  arrayCritName[i] = inpt.readLine();
for(int limit2=1; limit2<=1; limit2++){
    if(n==1){
        arrayCrit[i] = 100/100;
        System.out.print("Percentage: 100%");
        break;
      }
  System.out.print("Percentage: ");
  arrayCrit[i] = Integer.parseInt(inpt.readLine()); 
      if(arrayCrit[i]>100 || arrayCrit[i]<1){
        System.out.println("Sorry, minimum value is 1 and maximum value is 100");
        System.out.println("Please try again");
        System.out.println();
        limit2=limit2-1;            
      }
        check=check+arrayCrit[i];   

     if(check>100 || check<1){
        System.out.println("User didn't meet the default percentage (100%)");
        System.out.println(check);
        check=check-arrayCrit[i];
        limit2=limit2-1;
        continue;   
}
 arrayCrit[i] = arrayCrit[i]/100;

}

}

您好,我在输入百分比时需要帮助。我想知道最后输入是否可以自动输入值。

例如:

  • 标准数量:3
  • 标准(1) - 出勤
  • 百分比:25
  • 标准(2) - 测验
  • 百分比 - 25
  • 标准(3) - 考试
  • 百分比 - 50 <--- 自动出现,无需输入。

谢谢!

最佳答案

我清理并修复了你的代码:

-我将您的重试 for 更改为 while

-我删除了一些未使用的变量。

-我解决了你的自动值问题。我知道您希望该自动值是 100 减去用户之前输入的所有百分比的总和。由于您正在保存 check 变量,因此您只需在到达最后一次执行 (n-1) 时打印 (100-check)。

这是代码:

System.out.print("Number of criteria (Max: 5): ");
int n = Integer.parseInt(inpt.readLine());
System.out.println();
while( n>5 || n<1 ){
    System.out.println("Sorry the maximum limit is 5");
    System.out.println("Please try again");
    System.out.println();

    n = Integer.parseInt(inpt.readLine());
}

double[] arrayCrit = new double[n];
String[] arrayCritName = new String[n];
double check=0;

for (int i = 0; i < n; i++){
    System.out.print("Criteria("+(i+1)+"): ");
    arrayCritName[i] = inpt.readLine();

    if(i == n-1){
        arrayCrit[i] = (100-check)/100;
        System.out.print("Percentage: "+(100-check)+"%");
        continue;
    }

    System.out.print("Percentage: ");

    while(true){
        arrayCrit[i] = Integer.parseInt(inpt.readLine()); 

        if(arrayCrit[i]>100 || arrayCrit[i]<1){
            System.out.println("Sorry, minimum value is 1 and maximum value is 100");
            System.out.println("Please try again");
            System.out.println();
            continue;
        } 

        check=check+arrayCrit[i];  

        if(check>100 || check<1){
            System.out.println("User didn't meet the default percentage (100%)");
            System.out.println(check);
            check=check-arrayCrit[i];
            continue;   
        }

        arrayCrit[i] = arrayCrit[i]/100;
        break;

    }
}

关于Java自动值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19425814/

相关文章:

c - Open MP Schedules - 寻找循环的最佳参数

java - 了解 MapReduce 代码

java - 来自用户模型的 ArrayList 返回 null

Java:迭代器、可迭代器——接口(interface)还是抽象类?

Java Collections.shuffle 是做什么的?

python-3.x - 从 Python 3 for 循环打印时是否可以插入除最后一个分隔符之外的所有分隔符?

java - 服务器关闭时 Webstart 应用程序非常慢

c - 我的 for 循环出了什么问题?

java - 我可以将 for 循环数字模式转换为 while 循环并执行 while 循环吗?

Scala - 查找列表当前元素的确切索引