java - 找不到我的逻辑错误

标签 java netbeans

我做了一个简单的程序: 处理文件(读写) 结束类扩展 但该程序不起作用。 Netbeans 没有显示错误,但是当我运行它时……出现了某种错误……而且我不明白我的错误在哪里(我认为这是一个合乎逻辑的错误)。

这是一个简单的程序:

package detyre_kursi;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Detyre_kursi {

  public static void main(String[] args) {
    LlogariBankare llogaria1 = new LlogariBankare("aaa", 1000); 
    llogaria1.Balanca();    
  }

}



class LlogariBankare {
  //variablat e instances
  private String id;
  private int nrLlogarise;
  private int vitiHapjes;
  private double balanca;
  static int nrTranasksioneve = 0;

  public LlogariBankare() {
    System.out.println("Ju keni harruar te vendosi id dhe nrLlogarise");

  }

  public LlogariBankare(String id, int nrLlogarise) {
    this.id = id;
    this.nrLlogarise = nrLlogarise;
    vitiHapjes = 0;
    balanca = 0; 
    Lexim(this.id, this.nrLlogarise); 
  }

  public double getBalanca() {
    return balanca;
  }

  public int getVitiHapjes() {
    return vitiHapjes;
  }

  private void Lexim(String s, int llog) {
    try {
      File file = new File("c:\\java\\balanca.txt");
      Scanner scanner = new Scanner(file);
      while (scanner.hasNextLine()) {
        if (scanner.next().equals(s) && scanner.nextInt() == llog) {
          vitiHapjes = scanner.nextInt();
          balanca = scanner.nextDouble();
        }
      }
    } catch (IOException e) {
      e.getMessage();
    }   
  }


  void Balanca() { 
    try{
      File file = new File("c:\\java\\test.txt");
      PrintWriter out = new PrintWriter(file);
      out.println(this.balanca);  
    } catch (IOException e) {
      e.getMessage();
    }   
    System.out.println(this.id + " , ju keni " + this.balanca + 
        " lek ne llogarine tuaj te krijuar ne vitin " + vitiHapjes + 
        " dhe keni kryer " + nrTranasksioneve + " transaksione gjithsej");
  }


  void Terheqe(double terheqe) {
    this.balanca -= terheqe;
    System.out.println("Ju sapo keni terhequr " + terheqe + " nga llogaria juaj");
    nrTranasksioneve++;
  }

  void Depozitim(double depozitim) {
    this.balanca += depozitim;
    System.out.println("Ju sapo keni depozituar " + depozitim + " nga llogaria juaj");
    nrTranasksioneve++;
  }


}

class Interesi extends LlogariBankare {
  int vitiTanishem = 2012;
  double interesi = 0;
  int diferencaViteve = vitiTanishem - getVitiHapjes();

  Interesi(String id, int nrLlogarise) {
    super(id,nrLlogarise); 
  }

  void gjejInteresisn() {
    interesi = getBalanca() + getBalanca() * diferencaViteve * 0.01;
  }

}

文件 balanca 中有这一行: AAA 1000 1990 34000

简而言之,这是银行的一些简单版本。

您从文件中读取余额,并且 您可以使用 Terheqe() 和 Depozitim() 来表示 - 和 + 余额。 您可以使用 Balance() 来查看您有多少美元。当我运行它时,出现以下错误:

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at detyre_kursi.LlogariBankare.Lexim(Detyre_kursi.java:57)
at detyre_kursi.LlogariBankare.<init>(Detyre_kursi.java:40)
at detyre_kursi.Detyre_kursi.main(Detyre_kursi.java:11)

Java 结果:1

最佳答案

此行导致问题。 Scanner.nextInt() 可能不是 int,我觉得除非有特定原因,否则进行两次 next() 调用并不好。

if(scanner.next().equals(s)&&scanner.nextInt()==llog){

关于java - 找不到我的逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8990049/

相关文章:

java - 在 Java 中对单个字符进行子字符串化

java - "package"在UML中的含义与Java中的含义相同吗?

java - 深度初始化 Java Bean 属性

java - Netbeans 损坏的平台

java - hibernate SaxParseException

c++ - 在 Windows 上的 Netbeans 中设置 Mysql C++ 连接器

java jdbc mysql : how to store credentials in properties file with special characters?

java - 在JavaFx Web View 中打开网页时出错

java - Ant、NetBeans 平台项目 - 如何通过 System.getProperties 传递命令行参数和访问?

java - Netbeans 快速导入