Java 二进制运算符的操作数类型错误>;=,-*
我很难找出如何修复代码中不断出现的这些错误Java 二进制运算符的操作数类型错误>;=,-*,java,Java,我很难找出如何修复代码中不断出现的这些错误 import java.util.Scanner; public class Unit02Prog1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); String name; System.out.print("name"); name = input.ne
import java.util.Scanner;
public class Unit02Prog1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String name;
System.out.print("name");
name = input.next();
String catagory;
System.out.print("Catagory");
catagory = input.next();
String numWords;
System.out.print("numWords");
numWords = input.next();
int price;
if (numWords >= 50) {
price = ((numWords -50) * .08) + 5.00;
System.out.println("customer:" + name);
System.out.println("Placed an ad in catagory:" + catagory);
System.out.println("Ad length is" + numWords + "words, at a price of $" + price);
}
else {
price = numWords * .10;
System.out.println("customer:" + name);
System.out.println("Placed an ad in catagory:" + catagory);
System.out.println("Ad length is" + numWords + "words, at a price of $" + price);
}
}
}
这些是得到相同错误但末尾有不同符号的行
如果(numWords>=50){
二进制运算符“的操作数类型错误。您的变量
是字符串,请先将其解析为整数进行比较。然后,将numWords
更新为double。示例代码如下所示price
int numWords; System.out.print("numWords"); numWords = input.nextInt(); double price; if (numWords >= 50) { price = ((numWords -50) * .08) + 5.00; System.out.println("customer:" + name); System.out.println("Placed an ad in catagory:" + catagory); System.out.println("Ad length is" + numWords + "words, at a price of $" + price); }
是一个numWords
,而不是String
。解析该字符串以获取intint
你做错了什么 numWords是一个字符串,int num_words = Integer.parseInt(numWords);
仅适用于数字 如何修复 您有两个选项可以修复此问题:=
- 以字符串形式读取中的数字,并将其转换为数字
这种方式意味着您可以手动检查,如果号码错误,则无需捕获异常temp = input.nextLine(); numWords = Integer.parseInt(temp);
- 立即将中的数字作为数字读取
这种方法代码更少,但如果输入不是整数,则需要捕获numWords = input.nextInt();
NumberFormatException
- 您经常使用
,根据您的输入,您可能希望使用input.next()
nextLine
- 您可能需要使用
清除打印代码System.out.printf
在代码中: 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in)String simplenumber= "10"; int num = Integer.parseInt(simplenumber);
numWords是一个字符串。一个文本怎么能大于一个数字?String simplenumber= "10"; int num = Integer.parseInt(simplenumber);
String name; System.out.print("name"); name = input.next(); String catagory; System.out.print("Catagory"); catagory = input.next(); String numWords; System.out.print("numWords"); numWords = input.next(); int price; int numWordsInt = Integer.parseInt(numWords); if (numWordsInt >= 50) { price = (int) (((numWordsInt -50) * .08) + 5.00); System.out.println("customer:" + name); System.out.println("Placed an ad in catagory:" + catagory); System.out.println("Ad length is" + numWords + "words, at a price of $" + price); } else { price = (int) (numWordsInt * .10); System.out.println("customer:" + name); System.out.println("Placed an ad in catagory:" + catagory); System.out.println("Ad length is" + numWords + "words, at a price of $" + price); }}
- 以字符串形式读取中的数字,并将其转换为数字