【发布时间】:2019-05-27 18:53:06
【问题描述】:
我编写了一个简短的代码,从名为“ChosenCompanies”的类中声明了 6 个引用变量,以练习 Java 中的类和构造函数。
如下:
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]);
}
从上面的代码可以看出,这两部分除了引用变量的名字(com1, com2, com3, com4...)之外几乎是一样的:
第 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;
第 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;
}
我想知道是否可以通过使用 for 或 while 循环来最小化上述代码的数量,因为引用变量的名称会增加 1,就像常见 for 语句中的整数“i”一样。
简而言之,是否可以通过循环来声明引用变量?
【问题讨论】:
-
使该部分成为将这 3 个对象作为参数的方法。
-
第二部分的代码会被执行吗?您的
while条件仅在count < 2时通过,case 2部分将如何运行? -
是的,第 2 部分中的代码已执行,我在几秒钟前检查了结果。我和你有同样的疑问,一开始就设置了 while 条件(count
-
我知道为什么要执行代码了;这是因为我没有为 switch(count) 语句添加 break 语句。我修复了原始代码,因为它很混乱。
-
请注意,您应该遵循 Java 命名约定:变量名总是以驼峰命名。所以
FinalCompaniesName应该是finalCompaniesName。
标签: java