【问题标题】:java Condition inside a loop循环内的java条件
【发布时间】:2014-08-13 13:17:43
【问题描述】:
    System.out.print("Enter Number to Search: ");
    String get = br.readLine();
    int input = Integer.parseInt(get);
    for(int i = 0; i < 5; i++)
    {
        num[i] = inFile.nextInt();
    }
    for(int j = 0; j < 5; j++)
    {
        if(input == num[j])
        {
            System.out.println("Search number is found!");
            break;
        }
        else
        {
            System.out.println("Search number is lost!");
        }

    }

num[i] 中的数字是 1, 2, 3, 4, 5。
我的问题是,当我尝试搜索数字 5 时,输出是这样的:

    Enter Number to Search: 5
    Search number is lost!
    Search number is lost!
    Search number is lost!
    Search number is lost!
    Search number found!

如何打印“找到的搜索号码!”不打印“搜索号丢失!”??

【问题讨论】:

  • 删除println?

标签: java for-loop conditional-statements


【解决方案1】:

创建一个布尔表达式并将其设置为 false。遍历您的循环,如果找到数字,将其设置为 true,然后打印“找到搜索数字”。循环结束后,检查布尔值是否为假。如果为假,则打印“搜索号丢失!”

【讨论】:

    【解决方案2】:

    在第二个循环中丢失 else 语句。

    boolean found = false;
    for(int j = 0; j < 5; j++) {
        if(input == num[j]) {
            found = true;
            break;
        }
    }
    if(found)
       System.out.println("Search number is found!");
    else
       System.out.println("Search number is lost!");
    

    【讨论】:

    • 如果确实找不到号码,我相信他仍然希望打印号码丢失。 @jhobbie 建议的布尔值可以解决问题
    【解决方案3】:

    基本上我已经从 for 循环中删除了 else 语句,并在 if 语句中添加了一个布尔标志。如果找到数字,则打印出来并将 flag 设置为 true。循环结束后,检查标志以查看是否找到了数字。如果没有,请打印出来。

        System.out.print("Enter Number to Search: ");
        boolean found = false;
        String get = br.readLine();
        int input = Integer.parseInt(get);
        for(int i = 0; i < 5; i++)
        {
            num[i] = inFile.nextInt();
        }
        for(int j = 0; j < 5; j++)
        {
            if(input == num[j])
            {
                System.out.println("Search number is found!");
                found = true;
                break;
            }    
    
        }
        if(!found){
            System.out.println("Search number is lost!");
        }
    

    【讨论】:

      【解决方案4】:

      尝试以下代码,它会在输出找到/丢失的号码之前清除屏幕上的所有文本。

      System.out.print("Enter Number to Search: ");
      String get = br.readLine();
      int input = Integer.parseInt(get);
      for(int i = 0; i < 5; i++)
      {
          num[i] = inFile.nextInt();
      }
      for(int j = 0; j < 5; j++)
      {
          if(input == num[j])
          {
              system("CLS");
              System.out.println("Search number is found!");
              break;
          }
          else
          {
              system("CLS");
              System.out.println("Search number is lost!");
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-23
        • 2019-03-13
        • 2016-03-30
        • 1970-01-01
        • 1970-01-01
        • 2015-11-14
        • 2015-09-29
        • 1970-01-01
        相关资源
        最近更新 更多