当前位置: 首页 > 知识库问答 >
问题:

如何在循环外打印语句避免重复?

端木朝
2023-03-14

我希望我的 print 语句在循环之外,这样语句就不会一遍又一遍地打印相同的内容。下面的 for 循环只是将一个数组中的数字与另一个数组进行对比,以找出找到多少个匹配项。定义上面的变量并打印下面的语句会导致“变量未初始化错误”,这是可以理解的。

for (int i = 0; i < 6; i++)
{
    int chkNum = myArray[i];
    int lottMtch = count(chkNum, rndNum);

    if (lottMtch > 0)
    {
        System.out.println(lottMtch + "matches found");
        System.out.print(chkNum);
    }
    else {
        System.out.print("no matches found");
    }
}

共有3个答案

从焱
2023-03-14

这是因为如果您只在循环上方声明变量,并且只在循环中初始化所述变量,那么当您尝试在循环外打印这些变量时,无法保证它们会被初始化。

所以,也许你想要这样的东西:

int lottMtch = 0;

for (int i = 0; i < 6; i++)
{
    int chkNum = myArray[i];
    lottMtch += count(chkNum, rndNum);
    //System.out.print(chkNum); this would not really make sense outside of the loop
}

if (lottMtch > 0)
{
    System.out.println(lottMtch + "matches found");
}
else 
{
    System.out.print("no matches found");
}
曹经业
2023-03-14

这实际上没有意义..如果你想试试这个...

        int lottMtch[]=new int[myArray.length];
           Arrays.fill(lottMtch, 0);
            for (int i = 0; i < 6; i++)
            {
                int chkNum = myArray[i];
               lottMtch[i] = count(chkNum, rndNum);

            }
            for (int i = 0; i < 6; i++)
            {
                       if (lottMtch[i] > 0)  
                            System.out.println(lottMtch[i] + " matches found "+ myArray[i]);
            }

如果你想发现有多少匹配的 rndNum 在我的阵列比试试这个

这里我假设rndNm全局

        int lottMtch=0;

            for (int i = 0; i < 6; i++)
            {

               lottMtch += count(myArray[i], rndNum);

            }

                       if (lottMtch> 0)  
                            System.out.println(lottMtch + " matches found "+ rndNum);

按照评论中的讨论,试试这个..

Map<Integer,Integer> map = new HashMap<Integer,Integer>();


       for (int i = 0; i < 6; i++)
         {
             Integer chkNum = myArray[i];
            Integer cnt = (Integer)count(myArray[i], rndNum);
              if(cnt>0)
              {
                  if(map.get(chkNum)==null)
                     map.put(chkNum,1);
                  else
                     map.put(chkNum, map.get(chkNum)+1);
              }

         }

         for (Object key : map.keySet()) 
             System.out.println(map.get(key) + " matches found "+key.toString());
拓拔弘化
2023-03-14

在循环之前声明变量,然后在循环中执行您的操作,例如,如果找到变量,则向变量添加一个变量,然后在大于 0 时将其打印出来。像这样...

int var = 0;
for(...) {
   if(found)
       var++;
}
if(var > 0)
    sysout(var);

当然,这段代码不会工作,但它是一个开始。为了你的学习经验,我会让你用你的代码实现这个想法。

 类似资料:
  • iv得到了一个检查两个数组中的值的循环。如果找到匹配的值,这些值将被打印到控制台。 我还包含了一个 print 语句,该语句旨在仅在未在任何地方找到匹配项时才打印。 此时,如果传入的数组包含一些匹配的数字和一些不匹配的数字,我仍然会得到没有找到匹配的消息。相反,我希望只有在任何地方都不存在匹配时,才打印“找不到匹配”消息。 我认为这应该是一个简单的更正,但我看不出我哪里出错了。 建议不胜感激。

  • 问题内容: 我用option运行pytest 。 不幸的是,这会打印出很多点。例: 有没有办法避免这么长的点和“ s”字符列表? 更新资料 有一个有效的答案。但是不知何故对我来说太长了。我现在使用此解决方法:我将其添加到调用pytest的脚本中: 问题答案: 详细选项无法关闭测试结果打印。但是,可以通过多种方式进行自定义,包括结果打印。要更改此设置,您将覆盖该挂钩。 关闭短字母 创建一个具有以下内

  • 我有一些嵌套代码,我想检查它的条件并打印一次语句。但是我不知道如何改革for循环,也不知道哪个是这个situstin使用的理想循环。?我已经写了这个,我得到你好打印4次…我想它打印一次…请帮忙。

  • 从我的main开始,我将启动两个线程,称为producer和consumer。两者都包含循环。生产者循环是UDP服务器,因此不需要Hibernate。我的问题出在消费者方面。使用者循环将对象从链接队列中移除,并将其传递给一个函数进行进一步处理。根据研究,在循环中使用线程Hibernate不是一个好的实践,因为有时O/S在设定时间结束时不会释放。如果我删除线程Hibernate,当应用程序是理想的,

  • 我在一个自定义的帖子类型中有3种不同的分类法。我想打印所有的职位与任期名称与他们。 分类学1= 分类学2= 分类学3= 因此,我想用术语名称打印所有自定义文章我可以通过输入单个分类法打印数据,但如何使用所有分类法术语打印数据 查询 结束结果,我想在后循环

  • 问题内容: 我知道python中的循环导入问题已经出现过很多次了,我已经阅读了这些讨论。在这些讨论中反复提出的意见是,循环导入表明设计不良,应重新组织代码以避免循环导入。 有人可以告诉我在这种情况下如何避免循环导入吗?:我有两个类,并且我希望每个类都有一个构造函数(方法),该构造函数接受另一个类的实例并返回该类的实例。 更具体地说,一类是可变的,一类是不变的。哈希,比较等需要不可变的类。可变类也需