我不断在令牌上遇到#34;语法错误请删除这些令牌"在System.out.println的第一个实例之后的几乎所有System.out.println文本中。我不知道这意味着什么或如何解决它?我是一个非常新的开始,因此此代码中可能存在多个错误。我还得到"令牌上的语法错误""倍数是"",无效的AssignmentOperator"和"""平方是"",无效的AssignmentOperator"错误也是如此。这是一个具有最终结果的类的赋值 n的反面是y n加倍是y n的一半是y n平方是y n的倒数是y n的十分之一是y,y的平方是z n减去n的最后一位是y n和n + 1和n + 2之和为y 谢谢!
import java.util.Scanner;
public class Arithmetic {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer: ");
int n = scanner.nextInt();
int opposite = n*-1;
System.out.println("The opposite of" n "is" opposite);
int twoTimes = n*2;
System.out.println(n "doubled is" twoTimes);
int half = n/2;
System.out.println("half of "n "is" half);
int square= n*n;
System.out.println(n "squared is" square);
int reciprocal= 1/n;
System.out.println("the reciprocal of" n "is" reciprocal);
double fraction = n*.10;
double fractionTwo = fraction*fraction;
System.out.println("one-tenth of" n "is" fraction "and" fraction "squared is" fractionTwo);
// int lastDigit =
// System.out.println();
int sum= n+1;
int sumTwo= n+2;
int sumTotal= sum + sumTwo;
System.out.println("the sum of" n "and" sum "and" sumTwo "is" sumTotal);
}
}
**如果有人想帮我弄清楚" n + 1" /" n + 2"公式以及如何在代码中格式化它,这将是值得赞赏的!
答案 0 :(得分:1)
此代码存在一些错误。
System.out.println("The opposite of" n "is" opposite);
应该是:
System.out.println("The opposite of" + n + "is" + opposite);
当我们想要结合字符串时,我们使用+
符号。
int reciprocal= 1/n;
无效;
假设double reciprocal= 1.0/n;
是n
,应为int
。
double result = (n + 1.0) / (n + 2.0);
假设n
是int
。< p>
答案 1 :(得分:1)
这不是你如何连接(链接)两个字符串!
此代码和其他类似代码
System.out.println(n "doubled is" twoTimes);
错了。
我想您想将n
,"doubled is"
和twoTimes
联系在一起,对吗?
现在你用空格链接它们。但Java中的空格字符并不能连接字符串。这就是编译器抱怨的原因。
在Java中,+
是两者用于添加和字符串串联!所以你应该将上面改为:
System.out.println(n + "doubled is" + twoTimes);
但是等等!你的空间去了哪里?这是因为+
没有自动为您添加空间,您需要自己添加。
System.out.println(n + " doubled is " + twoTimes);
或者,您可以使用String.format
格式化字符串。此
/* Explanation: n will be "inserted" to the first %d and twoTimes will
be inserted to the second %d. And %d basically means "express the thing in
decimal"*/
String.format("%d doubled is %d", n, twoTimes)
与
相同n + " doubled is " + twoTimes
关于你的公式问题:
在Java中,有两种不同的数字类型,int
和double
。 (实际上还有更多,但它们无关紧要)int
和double
在划分时会做出不同的事情。他们有不同的文字。
5
是int
字面值,5.0
是double
字面值。看到?没有小数位的数字是int
s,带小数位的数字叫double
s。
那么你的配方有什么问题?我们先来看看划分int
和double
int / int: 1 / 5 = 0
int / double: 1 / 5.0 = 0.2
double / int: 1.0 / 5 = 0.2
double / double: 1.0 / 5.0 = 0.2
int / 0: 1 / 0 = Exception!
double / 0: 1.0 / 0 = NaN
在您的代码中:
int reciprocal= 1/n;
和其他类似的行,你正在进行int
的划分。这就是为什么上面的代码不起作用的原因。你应该做的是将其中一个数字改为双数!并将类型更改为double
。
double reciprocal = 1.0 / n;
------ ---
changes here as well!