Java 减法程序中的一个非常简单的错误

Java 减法程序中的一个非常简单的错误,java,Java,在最后一次打印语句时,我在下面的程序中遇到了一个非常简单的错误。但我不知道背后的确切原因。即使逻辑正确,语法也正确 请告诉我错误的确切原因 谢谢 import java.util.Scanner; public class main { public static void main(String args[]) { int c,d; Scanner s = new Scanner(System.in); System.out.pr

在最后一次打印语句时,我在下面的程序中遇到了一个非常简单的错误。但我不知道背后的确切原因。即使逻辑正确,语法也正确

请告诉我错误的确切原因

谢谢

import java.util.Scanner;
public class main
{
    public static void main(String args[])
    {
        int c,d;
        Scanner s = new Scanner(System.in);
        System.out.print("Enter the first number : ");
        c = s.nextInt();
        System.out.print("Enter the second number : ");
        d = s.nextInt();

        System.out.println("The sub is : "+ c-d);

    }
}

这是因为,您正在尝试进行字符串串联,因为您的第一个操作数是字符串

试试这个:

System.out.println("The sub is : "+ (c-d));
请注意,括号中的(c-d)

编译器会抱怨
-
运算符未为string和int定义

参数类型字符串int的运算符-未定义

请注意,
Sub是:+c
,结果将是一个字符串。现在

`Sub is:+ c` - d;
^^String     - int

这是因为,您正在尝试进行字符串串联,因为您的第一个操作数是字符串

试试这个:

System.out.println("The sub is : "+ (c-d));
请注意,括号中的(c-d)

编译器会抱怨
-
运算符未为string和int定义

参数类型字符串int的运算符-未定义

请注意,
Sub是:+c
,结果将是一个字符串。现在

`Sub is:+ c` - d;
^^String     - int

减法的周围需要括号:

System.out.println("The sub is : " + (c - d));
这是因为在没有括号的情况下,
+
-
运算符具有相同的优先级并从左到右关联。因此,编译器尝试解析它,就好像它是编写的一样:

System.out.println(("The sub is : " + c) - d);

第一部分是可以生成
字符串的表达式。不幸的是,无法将
-
运算符应用于左侧为
字符串,右侧为
int

的表达式减法需要括号:

System.out.println("The sub is : " + (c - d));
这是因为在没有括号的情况下,
+
-
运算符具有相同的优先级并从左到右关联。因此,编译器尝试解析它,就好像它是编写的一样:

System.out.println(("The sub is : " + c) - d);
第一部分是可以生成
字符串的表达式。不幸的是,这样就无法将
-
运算符应用于左侧为
字符串而右侧为
int
的表达式

System.out.println("The sub is : "+ (c-d));
而不是

System.out.println("The sub is : "+ c-d);
检查它现在是否工作。

使用

System.out.println("The sub is : "+ (c-d));
而不是

System.out.println("The sub is : "+ c-d);

然后检查它现在是否工作。

将来,如果你要问一个错误,请说错误是什么…@JonSkeet-实际上我会这么做,但我不能从CMD复制任何东西。但我下次会自己写。只需右键单击,选择“标记”,拖动要复制的区域,然后按enter键。谢谢你的提示,兄弟,非常感谢,以前从未注意过。将来,如果你要问错误,请说出错误是什么…@JonSkeet-实际上我会这么做,但我无法从CMD复制任何内容。但我下次会自己写的。只需右键单击,选择“标记”,拖动要复制的区域,然后按enter键。谢谢你的提示兄弟,非常感谢,以前从未注意过它。是的,我知道它在java中用于串联,但为什么在-?@ShivamChopra的情况下它会给出错误,因为当它将前两个操作数与
+
串联为
-
时,运算符在字符串编译器投诉的情况下不起作用,Insok得到了它。谢谢兄弟。有什么方法可以和你聊天或联系你吗?是的,我知道它在java中用于连接,但为什么在-?@ShivamChopra的情况下它会给出错误,因为它将前两个操作数连接到
+
as
-
运算符在字符串编译器投诉的情况下不起作用,所以我得到了它。谢谢兄弟。有没有办法和你聊天或者联系你?