0

如何将存储在“dryrun.txt”中的数字设置为 int url?我知道这是一个非常简单的答案,但我似乎无法理解。我看过其他关于使用 parseInt 的帖子,但是当我这样做时,我总是遇到错误,我问我的老师,他说这仅用于在其他文本中查找数字,在此文件中它只有 1 个数字。谢谢您的帮助。

import java.util.Scanner;
import java.io.*;

public class Even
{
  public static void main (String[] args) throws IOException
  {
    int even = 0;
    int url = 0;
    int Counter = 2;
    Scanner fileScan;

    fileScan = new Scanner (new File("dryrun.txt"));
    url = fileScan.nextInt();

    if ( url > 2)
      System.out.println ("Error");      
    if (url % 2 == 0)
      even = (Counter + 2);

    System.out.print(" "+ even +" "); 
  }
}
4

2 回答 2

1

好的,是的,你是对的,对不起,我没有意识到,但无论如何我仍然有我原来的问题,文件中的值现在是 0,它给了我错误,但如果我将它设置为 2,它会增加 4 并且不会t给我错误..

这表明你的逻辑是错误的......

基于此代码,让我们进行一些桌面检查...

if ( url > 2)
  System.out.println ("Error");      
if (url % 2 == 0)
  even = (Counter + 2);

假设url == 4...

  • if (url > 2)= if (4 > 2)= true, 打印Error
  • if (url % 2 == 0)= if (4 % 2 == 0)= true,even = Counter + 2

假设url == 2...

  • if (url > 2)= if (2 > 2)=false什么都不做...
  • if (url % 2 == 0)= if (2 % 2 == 0)= true,even = Counter + 2

假设您想在数字结束时打印错误,1您应该使用if (url >= 2)if (url > 1)

假设您不想在出现错误时继续计算结果,您应该使用如下if-else语句...

if ( url > 2)
  System.out.println ("Error");      
else if (url % 2 == 0) {
  even = (Counter + 2);
  System.out.print(" " + even + " ");
}
于 2013-09-18T02:51:56.587 回答
0
public static void main(String[] args) throws FileNotFoundException {

    int even = 0;
    int url = 0;
    int Counter = 2;
    Scanner fileScan;

    InputStream in = new FileInputStream(new File("C:\\dryrun.txt"));
    fileScan = new Scanner(in);
    while (fileScan.hasNextLine()) {
        url = Integer.parseInt(fileScan.nextLine()); //
    }

    if (url > 2)
        System.out.println("Error");
    if (url % 2 == 0)
        even = (Counter + 2);

    System.out.print(" " + even + " ");

}
于 2013-09-18T02:44:44.150 回答