Java 简易计算机

Java 简易计算机,java,bluej,Java,Bluej,我在冯·诺依曼机器上工作,我在编写一个java程序,它像一台简单的机器一样工作,遵循指令。它读取一个文本文件,根据文件中的操作码,它可以存储、添加、减除、multilply、divide和加载数字。我应该使用switch语句还是大量if-else语句 01 07//7号负载至蓄能器 21 91//存储累加器M1 05 13//将13添加到7,并将20保留在Acc中 99//根据目录打印 06 12//从Acc中减去12 21 91//存储8到M1 public class Machine{ p

我在冯·诺依曼机器上工作,我在编写一个java程序,它像一台简单的机器一样工作,遵循指令。它读取一个文本文件,根据文件中的操作码,它可以存储、添加、减除、multilply、divide和加载数字。我应该使用switch语句还是大量if-else语句

  • 01 07//7号负载至蓄能器
  • 21 91//存储累加器M1
  • 05 13//将13添加到7,并将20保留在Acc中
  • 99//根据目录打印
  • 06 12//从Acc中减去12
  • 21 91//存储8到M1

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

使用以下方法:

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)
获取这两个字符的整数值


通过在开关中添加其他情况,这可以在所有示例中重复使用。

我认为这是基于观点的。根据,开关通常更有效。如何获取文件中的第二个数字,而不是第一个数字(01 7),我想将7存储到名为Acc的变量中,而不是01?@s.Klumpers
switch(read){case 01:Acc=M1+read;System.out.println(Acc);break;case 21:break;case 05:case 99:case 06:}
我试过了,然后它一直给我“不兼容类型-找到java.lang.String但expexted int”@S.klumpers您可以确定错误发生在哪一行或附加完整代码吗?
File File File=new File(“U:/op.txt”);Scanner readfile=new Scanner(File);while(readfile.hasNextLine()){String read=readfile.nextLine();开关(read.substring(0,2)){case“01”:acc=m1+Integer.parseInt(read.substring(3,5));System.out.println(acc);break;case“21”:acc=m1;break;case“05“:acc=m1+Integer.parseInt(read.substring(3,5));break;}
如何正确发布我使用的代码``但它没有正确发布。无论如何,它在switch语句中给出了一个错误。我将switch语句放入while循环中。我对它进行了编辑,直到它为我编译为止,但我无法运行它,这给了我一些无法找到文件的异常。
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;
            }
        }
    }
}