gpt4 book ai didi

java,以txt文件的形式输出不正确(简单的从控制台输入两个值并输出相加的值)

转载 作者:行者123 更新时间:2023-12-01 19:53:44 25 4
gpt4 key购买 nike

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

public class Test {
public static void main(String[] args) throws FileNotFoundException{
int option = 0;
int a;
int b;

System.out.println("Input the type of the calculation:");

Scanner in = new Scanner(System.in);
PrintWriter out = new PrintWriter(new File("C:\\Users\\123\\Desktop\\result.txt"));

option = in.nextInt();

System.out.println("Input the two values:");
System.out.print("a:");
a = in.nextInt();

System.out.print("b:");
b = in.nextInt();

in.close();

// the Calculation:
switch(option) {
case 1:
out.write(Integer.toString(a+b));
System.out.println(a + b);
case 2:
out.write(Integer.toString(a - b));
case 3:
out.write(Integer.toString(a * b));
case 4:
out.write(Double.toString(1.0 * a / b));
}

out.flush();
out.close();
}
}

这是代码,我使用 a=12, b=4 的值作为测试示例,我在 option 中输入 1(这使得程序通过选择 switch 进行加法),System.out.println 的结果。 out.print 是正确的,是 16,但是使用 PrintWriter 输出的结果不正确,不仅是值,而且值类型是 float(或 double,但应该是 int),值为 168483.0,我我对java真的很陌生,无法解决这个问题。

最佳答案

当我运行此命令时,我在 result.txt 文件中获得了预期的输出,但后面跟着其他数字。

发生这种情况是因为每个 case 中没有 break 语句,因此计算了总和(case #1),但随后代码经过减法(情况 #2),然后乘法和除法,将每个结果输出到文件中,没有分隔符或换行符来分隔它们。

您的输出是168483.0——这是:
• 12 + 4 = 16
• 12 - 4 = 8
• 12 * 4 = 48
• 12/4 = 3.0
如果有间距,它看起来像:16 8 48 3.0

包含 default: 情况也是一个很好的做法,例如,如果有人输入 9 作为计算类型会怎样。

这将使您的 switch 语句应如下所示:

switch(option) {
case 1:
out.write(Integer.toString(a+b));
System.out.println(a + b);
break; // <---- added a "break" for each case
case 2:
out.write(Integer.toString(a - b));
break;
case 3:
out.write(Integer.toString(a * b));
break;
case 4:
out.write(Double.toString(1.0 * a / b));
break;
default:
System.out.println("Operations are: 1=add 2=subtract 3=multiply 4=divide");
break;
}

关于java,以txt文件的形式输出不正确(简单的从控制台输入两个值并输出相加的值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50355956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com