简单的计算机

时间:2016-02-08 18:38:43

标签: java bluej

我正在研究Von Neumann机器,我正在编写一个类似于简单机器的java程序,它遵循指令。它读取文本文件,并根据文件中的OpCode,它存储,添加,减去,多个,分割和加载数字。我应该使用switch语句还是很多if else语句?

  • 01 07 //将7加载到累加器
  • 21 91 //存储蓄电池M1
  • 05 13 //添加13到7并在Acc。
  • 中保留20
  • 99 99 //打印Acc。内容
  • 06 12 //从Acc。
  • 减去12
  • 21 91 //将8存储到M1

    public class Machine{
    public static void main(String[] args) throws FileNotFoundException
    

    {

      File file = new File("U:/op.txt");
      Scanner readfile = new Scanner(file);
    
        while(readfile.hasNextInt()){
          String read = readfile.nextLine();
    
          System.out.println(read);
        }
    
    
    }
    

1 个答案:

答案 0 :(得分:0)

使用此:

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

public class Machine{
    public static void main(String[] args) throws FileNotFoundException
    {
        File file = new File("U:/op.txt");
        Scanner readfile = new Scanner(file);

        int acc = 0;
        int M1 = 0;

        while(readfile.hasNextInt())
        {
            String read = readfile.nextLine();

            switch(read.substring(0, 2))
            {
                case "01":
                    acc = M1 + Integer.parseInt(read.substring(3, 5));
                    System.out.println(acc);
                break;
            }
        }
    }
}

read.substring(0, 2)获得前两个字符。 read.substring(3, 5)获取另外两个,Integer.parseInt(intString)获取这两个字符的整数值。

通过在交换机中添加其他案例,可以对所有示例重复使用。