Java 阵列扫描以前的实体

Java 阵列扫描以前的实体,java,arrays,for-loop,Java,Arrays,For Loop,我试图创建一个数组,如果它与以前的条目不匹配,它将创建一个新值。如果该项与前一项相同,则第二个数组中的索引将添加1 for (j = 0; !input.equals("x"); j++ ) { // team loop System.out.println("Which team just won? (x to exit)"); input = scnr.nextLine(); for (i = 0; i < team.length - 1; i++) {

我试图创建一个数组,如果它与以前的条目不匹配,它将创建一个新值。如果该项与前一项相同,则第二个数组中的索引将添加1

for (j = 0; !input.equals("x"); j++ ) { // team loop
    System.out.println("Which team just won? (x to exit)"); 
    input = scnr.nextLine();

    for (i = 0; i < team.length - 1; i++) {
        if (team[i] == input) {
            score[j]++;
        }
        else if (team[i] != input) {
            continue;
        }
    }
} 
for(j=0;!input.equals(“x”);j++{//team循环
System.out.println(“哪支球队刚刚获胜?(x退出)”;
input=scnr.nextLine();
对于(i=0;i
看起来是一个好的开始,但有一些问题需要您以后记住

  • 首先,必须使用team[i].equals(输入)来比较两个字符串

  • 第二,不需要第二个条件“else-if” 陈述如果第一个“If”语句没有捕获 不管怎样,它将继续到下一个迭代

  • 第三,请注意您的代码格式。你的分号 {}在一些地方没有对齐,这使得阅读起来很混乱

要稍微回答你的问题,想想你想做什么。您希望“团队”和“分数”数组彼此对齐,以便团队[0]的分数存储在分数[0]中。按照设置的方式,搜索输入的团队索引。然后,在索引j处增加分数(循环的每个周期增加一个)

假设“苹果”队的指数为0,“香蕉”队的指数为1

如果第一轮的输入是“香蕉”,那么您的循环将发现团队“香蕉”位于内部for循环的索引1处。然后,它将增加j处的分数,即0。这意味着最终得分将是“苹果”:1和“香蕉”:0,尽管香蕉是赢家


希望这能帮助你思考一下这个问题

不要使用==来比较字符串。团队的声明是什么?字符串[]团队=新字符串[5];对不起,你的问题是什么?你能提供你的代码应该如何工作的例子吗?一些带有预期行动/输出/结果的输入可能会有所帮助。哪支球队刚刚获胜?(x退出)用户输入Sooners哪支球队刚刚获胜?(x退出)用户输入Sooners哪支球队刚刚获胜?(x退出)牛仔队哪支球队刚刚获胜?(x退出)哪支球队刚刚获胜?(x退出)x基于
!输入。等于(“x”)您似乎知道应该如何比较字符串。那你为什么要用
==
?如果您不了解差异,请查看:。还有,为什么您有
else
块(更不用说,既然您在
else
中,那么您已经知道
team[i]==input
不是真的,所以检查
team[i]!=input在那里没有意义)?
while(True){
  System.out.println("Which team just won? (x to exit)"); 
  input = scnr.nextLine();
  if(input.equals('x')) break;
  for(int i=0;i< team.length-1;i++){
     if (team[i].equals(input)) {
        score[i]++;
     }
  }
}
Foo score = map.get(teamName);
if(score){
  score++;  
}