我试图在java中编写一个简单的计算器,因为我想学习这门语言.但我无法计算"C"变量.请帮忙.怎么了?
import java.util.*;
//Simple calculator
public class calc
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
double a, b, c;
System.out.print("Write first number");
a = in.nextDouble();
System.out.print("and write second");
b = in.nextDouble();
System.out.print("Choose the operation 1.Addition 2.Subtraction >Please write the number of operation ");
double somethin = in.nextDouble();
int addition = 1;
int subtraction = 2;
if (somethin >= addition)
{
c = a + b;
}
else if (somethin >= subtraction)
{
c = a - b;
}
{
System.out.println(c);
}
}
}
Run Code Online (Sandbox Code Playgroud)
看起来错误是代码总是落在addition条件中,因为您正在比较最后一个输入值是大于还是等于加法.
if (somethin >= addition)
{
c = a + b;
}
else if (somethin >= subtraction)
{
c = a - b;
}
Run Code Online (Sandbox Code Playgroud)
因此,如果somethin> = 1将进行添加.当您的输入为2时,它将进行检查2 >= 1,因此它将属于添加规则.
将您的代码更改为
if (somethin == addition)
{
c = a + b;
}
else if (somethin == subtraction)
{
c = a - b;
}
Run Code Online (Sandbox Code Playgroud)
此外,您应该使用int变量而不是double这种情况.
//double somethin = in.nextDouble();
int somethin = in.nextInt();
Run Code Online (Sandbox Code Playgroud)
如在matt forsythe的回答中所述,您必须声明变量并在使用之前对其进行初始化.在你的代码中,你有这个:
double a, b, c; //declaring the variables
//...
if (somethin == addition)
{
c = a + b;
}
else if (somethin == subtraction)
{
c = a - b;
}
System.out.println(c); //c it's declared but hasn't been initialized =\
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,你应该在行中c使用它之前初始化变量值System.out.println(c).要解决它,您可以在if评估之前给它一个值:
c = 0;
if (somethin == addition)
//rest of the code...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1133 次 |
| 最近记录: |