替代1000个if-then-else语句

Mik*_*son 1 java android if-statement switch-statement

我正在为Android编写基于文本的RPG游戏,以便熟悉Java和XML.我想在按钮的ListView中显示一个字符串数组选项,并且根据用户按下的按钮,我想用一组新选项相应地更新活动.

例如,假设游戏开始时有以下选择:

{option1, option2, option3, option4}
Run Code Online (Sandbox Code Playgroud)

如果用户点击option2,我想显示:

{2-option1, 2-option2, 2-option3, 2-option4}
Run Code Online (Sandbox Code Playgroud)

或者说让用户点击4而不是2.然后:

{4-option1, 4-option2, 4-option3, 4-option4}
Run Code Online (Sandbox Code Playgroud)

所以,我试图确定一种速度有效/内存有效的方法来确定下一个String[]显示.

最初我正在考虑构建一个GIANT if-then-else树(或switch语句 - 无关紧要),其中每个可能的选项都会有一个if语句.例如:

// choice是用户选择的选项

if(choice==option1){
   return {"1-option1", "1-option2", "1-option3"}
}else if(choice== 1-option1 ){
   return {"1-1-option1","1-1-option2","1-1-option3"}
Run Code Online (Sandbox Code Playgroud)

并且List将继续,直到每个可能的选择返回String [],该String []对应于要显示的下一组选项.

然后,我开始思考使用对象可能更干净,更容易:

   MyObject newObject = MyObject(choice)
   newObject.getOptions()
Run Code Online (Sandbox Code Playgroud)

where choice是一个构造函数参数,用于将a初始化String[]为正确的下一组选项; 和getOptions()返回此String[]

但是,这将是很多对象,我不确定它会简化if/switch语句方法.

那么,有什么想法可以有效地处理这样的事情吗?

Nic*_*ick 5

使用地图内到对象关联(可能是一个HashMap)"option2"{"2-option1", "2-option2", "2-option3", "2-option4"}.

数据结构选择在编程中非常重要.