java数组if循环_java-如何将数组与If语句一起使用

希望我能正确理解这个问题.您要用户按顺序输入单词“一个”,“两个”,“三个”等,并在成功输入的每个步骤中播放测试声音吗?

在这种情况下,请考虑以下事项:

import java.util.Queue;

import java.util.LinkedList;

Queue inputs = new LinkedList();

inputs.push("one");

inputs.push("two");

inputs.push("three");

// etc

// Then to check the user input

for (String match : matches) {

if (match.equals(inputs.peek())) {

inputs.pop(); // Removes the element you just matched

testSound.start();

}

}

请注意,这假设您要在每个步骤上执行相同的操作.如果您可以更多地描述您对“正确响应”行为的要求,我可以提供更准确的答案.

我们在上面使用一个队列,因为它的排序为First-In-First-Out.这意味着匹配项必须按照它们添加的顺序显示(上述所有push语句).在循环内部,当成功匹配发生时,将检查下一个所需的匹配.例如,使用包含(“三个”,“两个”,“一个”)的队列和包含(“一个”,“两个”,“三十”)的匹配项,循环将执行如下操作:

>匹配“一个”将与队列的开头“一个”进行比较

>匹配,所以我们“弹出”头部,将(“三个”,“两个”)留在队列中

>下一个匹配项“两个”将与队列的开头(现在为“两个”)进行比较

>这匹配,所以我们再次弹出头部,将(“三个”)留在队列中

>下一场比赛“三十”将与队列的开头(现在为“三”)进行比较

>这不匹配,因此队列不会发生进一步的变化

如果您希望每个匹配项都有特定的行为(即,当“一个”匹配项时执行某些操作,而在“两个”匹配项时执行其他操作,等等),您可以进行如下所示的连接(除了上述内容外)

public interface MatchAction {

public void doTheThing();

}

Map actionMap = new HashMap();

// Fill this bad boy up

actionMap.put("one", new MatchAction() { public void doTheThing() { /* do stuff */ } });

// Etc for each action (you can reuse instances here if some actions are the same)

// Then, we modify the check above to be:

for (String match : matches) {

if (match.equals(inputs.peek())) {

String input = inputs.pop();

MatchAction action = actionMap.get(input);

if (action != null) action.doTheThing();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值