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