I wrote a short code that declares 6 reference variables from a class named 'ChosenCompanies' to practice classes and constructors in Java.
It is the following:
public static void main(String[] args) {
String[] FinalCompaniesName = new String[6];
ChosenCompanies com1 = new ChosenCompanies();
ChosenCompanies com2 = new ChosenCompanies();
ChosenCompanies com3 = new ChosenCompanies();
ChosenCompanies com4 = new ChosenCompanies();
ChosenCompanies com5 = new ChosenCompanies();
ChosenCompanies com6 = new ChosenCompanies();
Scanner scanner = new Scanner(System.in);
int choice;
int count = 1;
while(count <= 2) {
switch(count) {
case 1:
System.out.println("Choose one:");
System.out.println("1. " + com1.name);
System.out.println("2. " + com2.name);
System.out.println("3. " + com3.name);
choice = scanner.nextInt();
switch(choice) {
case 1:
FinalCompaniesName[0] = com1.name;
break;
case 2:
FinalCompaniesName[0] = com2.name;
break;
case 3:
FinalCompaniesName[0] = com3.name;
break;
}
break;
case 2:
System.out.println("Choose one:");
System.out.println("1. " + com4.name);
System.out.println("2. " + com5.name);
System.out.println("3. " + com6.name);
choice = scanner.nextInt();
switch(choice) {
case 1:
FinalCompaniesName[1] = com4.name;
break;
case 2:
FinalCompaniesName[1] = com5.name;
break;
case 3:
FinalCompaniesName[1] = com6.name;
break;
}
break;
}
count++;
}
System.out.println("You have chosen: "
+ FinalCompaniesName[0] + ", " + FinalCompaniesName[1]);
}
As you can see from the above code, these two parts are almost the same except for the names of reference variables(com1, com2, com3, com4...):
part 1:
switch(count) {
case 1:
System.out.println("Choose one:");
System.out.println("1. " + com1.name);
System.out.println("2. " + com2.name);
System.out.println("3. " + com3.name);
choice = scanner.nextInt();
switch(choice) {
case 1:
FinalCompaniesName[0] = com1.name;
break;
case 2:
FinalCompaniesName[0] = com2.name;
break;
case 3:
FinalCompaniesName[0] = com3.name;
break;
}
break;
part 2:
case 2:
System.out.println("Choose one:");
System.out.println("1. " + com4.name);
System.out.println("2. " + com5.name);
System.out.println("3. " + com6.name);
choice = scanner.nextInt();
switch(choice) {
case 1:
FinalCompaniesName[1] = com4.name;
break;
case 2:
FinalCompaniesName[1] = com5.name;
break;
case 3:
FinalCompaniesName[1] = com6.name;
break;
}
break;
}
I am wondering if I can minimize the amount of the code above by using a for or while loop, since the name of the reference variables are increased by 1, like integer 'i' in a common for statement.
In short, is it possible to declare reference variables by using loop?