java符号超出范围超出范围



我必须修改我的程序,以持续提示每次租赁的分钟数,直到该值介于60和7200之间(包括60和7200)。因此,我要做的是在for循环之间输入提示,无论我每次这样做。我的程序告诉我找不到符号,即使它是全局的,并且在for循环中使用它。我只想知道我如何循环分钟,然后我会添加条件,以检查它是否在60到7200之间,并打破循环。

import java.util.Scanner;
public class RentalDemo
{
public static void main(String[] args)
{
   Scanner input = new Scanner(System.in);
    String contractName;
    int mins;
   //getting inputs
   //HERE IS THE PROBLEM, IF I TAKE THE FOR LOOP OUT IT WILL WORK FINE BUT ONLY ONCE.
   for (int x=0;x<10;x++)
   {
   System.out.println("Please enter contractName"); 
   contractName = input.nextLine(); 

   System.out.println("Please enter mins");
    mins = input.nextInt();
   }
    //object name
    Rental mike = new Rental(contractName, mins);
   //to clear buffer 
   input.nextLine(); 
   //getting inputs 
   System.out.println("Please enter contractName"); 
   contractName = input.nextLine(); 
   System.out.println("Please enter mins");
   mins = input.nextInt();
    //object name
    Rental luke = new Rental(contractName,mins);
    //to clear buffer 
    input.nextLine(); 
     //getting inputs 
     System.out.println("Please enter contractName"); 
     contractName = input.nextLine(); 
     System.out.println("Please enter mins");
     mins = input.nextInt();
     //object name
     Rental ihab = new Rental(contractName,mins);


    //outputs
    System.out.println("Contract Number: " + mike.getContractNumber()+ " nHours: "+mike.getHours()+ " Minutes: " +mike.getMins()+
    "nTotal Price: " +mike.getPrice());

    System.out.println("nContract Number: " + luke.getContractNumber()+ " nHours: "+luke.getHours()+ " Minutes: " +luke.getMins()+
    "nTotal Price: " +luke.getPrice());
     System.out.println("nContract Number: " + ihab.getContractNumber()+ " nHours: "+ihab.getHours()+ " Minutes: " +ihab.getMins()+
    "nTotal Price: " +ihab.getPrice());

   //methods
   int highest = compare(mike,luke);
   int highest2 = compare(ihab,mike);
   int highest3 = compare(luke,ihab);
   if (highest > highest2 && highest > highest3)
   {
      System.out.println("nContract Number:"+ mike.getContractNumber()+ " is the greater");
   }
   else if (highest2 > highest && highest2 > highest3)
   {
      System.out.println("nContract Number:" +ihab.getContractNumber()+ " is the greater");
   }
   else 
   {
     System.out.println("nContract Number:" +luke.getContractNumber()+ " is the greater");
   }


 }

 public static int compare(Rental ob1, Rental ob2)
 {

     int mins;  
   if ((ob1.getHours() > ob2.getHours()) || ob1.getMins() > ob2.getMins())
   {
         mins = ob1.getHours()*60 + ob1.getMins(); 
         return mins;
   }
   else
   { 
          mins = ob1.getHours()*60 + ob1.getMins(); 
     return mins;
   }
 }   
 }
for (int x=0;x<10;x++)
{
   System.out.println("Please enter contractName"); 
   contractName = input.nextLine(); 

   System.out.println("Please enter mins");
   mins = input.nextInt();
   if(mins > 60 && mins < 7200)
       break;
}

使用"break"可以断开循环。此外,for循环每次只替换每个变量,使其只存储x=9上的值。如果需要mins和contractName的每个值,请使用数组。我不理解你的符号超出范围的错误,你能粘贴你的错误输出吗?

最新更新