好的,所以我必须为我的一个作业制作一个驱动程序,我正在测试的是我的ArrayObject类。该类有一个“添加”方法:
[self addChildViewController:(A/B)];
[self didMoveToParentViewController:(A/B)];
因此,这会在用户在ArrayObject类中创建数组时添加一个对象。现在,我已经创建了一个ArrayObjectDriver类,在这个类中,我需要创建一个循环返回的菜单。 到目前为止:
private int actualSize; // assume actualSize == 0 for this code
public void add(Object obj)
{
if(actualSize>=arr.length)
return;
arr[actualSize]=obj;
actualSize++;
}
这是我的代码片段只使用第一个选项。我在向阵列添加对象时遇到了什么问题。我不知道如何在main方法中将用户输入添加到数组中。发生的另一个问题是程序本身。我把它作为一个字符串来测试字符串输入,每次我运行程序时,它会一直停止运行,因为它要求我“输入我的对象:”。我如何阻止它,所以它会将一个字符串对象添加到我的数组?它不会向数组添加任何内容。
我的下一个问题是如何循环主方法。我在void方法(int选项)代码中尝试了一种递归方法,然后测试将drive.methods(选项)代码放在while循环中但是它不起作用。我是否必须一遍又一遍地调用selectionMenu()?
编辑:
我宣布了扫描仪。
我宣布了数组。
答案 0 :(得分:0)
要从控制台获取用户输入,您可以使用Scanner类:
Scanner user_input = new Scanner( System.in );
看起来你有一个变量扫描仪,但是你发布的片段从未初始化过它。如果你想循环使用main方法,你可以这样做:
import java.util.Scanner;
public class TestClass {
private static Scanner scanner;
public static void main(String[] args)
{
scanner = new Scanner(System.in);
ArrayObject array = new ArrayObject();
String option = "";
int selection = selectionMenu();
while(selection != 3){
if(selection == 1){
System.out.println("Enter your object");
String input = scanner.next();
array.add(input);
}else if(selection == 2){
for(Object o : array){
System.out.println("Object value: "+o.toString());
}
}
selection = selectionMenu();
}
scanner.close();
}
public static int selectionMenu(){
System.out.println("Menu:");
System.out.println("\t1. Add object");
System.out.println("\t2. Print objects");
System.out.println("\t3. Quit:");
int option =scanner.nextInt();
return option;
}
}
答案 1 :(得分:0)
在您的代码中,在main方法中创建一个ArrayObject类对象,并在methods(int option, ArrayObject arrays)
中传递对象的引用,然后您可以轻松地将对象添加到数组中。
而且,对于你的下一个问题。为什么要循环main方法,而只是在main方法中创建for或while循环。 像这样:
while(true)
{
System.out.println("Menu ");
System.out.println("1. Option 1 ");
System.out.println("2. Exit");
System.out.println("Enter your choice ");
int n = scanner.nextInt();
switch(n)
{
case 1:
System.out.println("Enter your object: ");
String str = scanner.nextLine(); // putting string for now
array.add(str);
break;
case 2 :
System.exit(0);
}
}