Java 如何在while循环中只打印一次语句?

Java 如何在while循环中只打印一次语句?,java,while-loop,Java,While Loop,正如您所看到的,无论文本文件中有多少行代码,最后一行代码都将被打印多次。有没有办法只打印一次? 提前感谢。如果要打印此语句一次并退出循环 你可以加上 打破在if语句之后 { System.out.println("Enter input file name:"); Scanner keyboard = new Scanner(System.in); String fileName = keyboard.nextLine(); File read = new File(file

正如您所看到的,无论文本文件中有多少行代码,最后一行代码都将被打印多次。有没有办法只打印一次?
提前感谢。

如果要打印此语句一次并退出循环 你可以加上 打破在if语句之后

  {
  System.out.println("Enter input file name:");
  Scanner keyboard = new Scanner(System.in);
  String fileName = keyboard.nextLine();
  File read = new File(fileName);
  Scanner inputFile = new Scanner(read);

  if(read.length() == 0)
  {
     System.out.println("empty file");
     return;
  }

  inputFile.useDelimiter(":");
  String name, code, line, distance;
  System.out.println("Enter station name");
  String stationName = keyboard.nextLine();


  while(inputFile.hasNextLine())
  {
    name = inputFile.next();
    code = inputFile.next();
    line = inputFile.next();
    distance = inputFile.nextLine();

     if(stationName.equalsIgnoreCase(name))
     {
        System.out.println("Station code: " + code + " name: " + name);
        System.out.println("distance " + distance + " kms, is on the " + line + " line");
     }

     else if(!stationName.equalsIgnoreCase(name))
     {
        System.out.println("No information was found for station " + stationName);
     }

我猜您要做的是在读取整个文件后才显示此错误消息。您可以使用一个布尔变量
stationFound
初始化为
false
,并在找到匹配的电台时将其设置为
true
。 在while循环之后,您可以检查
stationFound
是否为真,如果不是,则显示错误消息

请注意,一旦找到匹配的电台,也可以使用
中断
,以避免在不需要时读取整个文件

下面是它在代码中的外观:

else if(!stationName.equalsIgnoreCase(name))
     {
        System.out.println("No information was found for station " + stationName);
break;
     }

你有没有考虑过休息一下

boolean stationFound = false;
while(inputFile.hasNextLine())
{
    // ...
    if(stationName.equalsIgnoreCase(name))
    {
        System.out.println("Station code: " + code + " name: " + name);
        System.out.println("distance " + distance + " kms, is on the " + line + " line");
        stationFound = true;
        break;
     }
}


if(!stationFound)
{
    System.out.println("No information was found for station " + stationName);
}

您可以声明一个布尔变量hasprint=false,然后make,然后add&!HASPRINT到else if语句,并在内部逻辑中将HASPRINT设置为true为System.out.println编写一个返回true的包装器方法。将其称为“print”。打印后中断方法。注意:在本例中,您不需要else-if条件。否则就足够了,因为您只需输入第二个块,如果stationName不等于nameOnly,那么这个答案似乎能够理解他在尝试做什么
 else if(!stationName.equalsIgnoreCase(name))
{
    System.out.println("No information was found for station " + stationName);
    break;
}