Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 二进制运算符的操作数类型错误>;=,-*_Java - Fatal编程技术网

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
    是字符串,请先将其解析为整数进行比较。然后,将
    price
    更新为double。示例代码如下所示

        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
    ,而不是
    int
    。解析该字符串以获取int

    int num_words = Integer.parseInt(numWords);
    
    你做错了什么 numWords是一个字符串,
    =
    仅适用于数字

    如何修复 您有两个选项可以修复此问题:

    • 以字符串形式读取中的数字,并将其转换为数字

      temp = input.nextLine();
      numWords = Integer.parseInt(temp);
      
      这种方式意味着您可以手动检查,如果号码错误,则无需捕获异常

    • 立即将中的数字作为数字读取

      numWords = input.nextInt();
      
      这种方法代码更少,但如果输入不是整数,则需要捕获
      NumberFormatException

    其他注释
    • 您经常使用
      input.next()
      ,根据您的输入,您可能希望使用
      nextLine
    • 您可能需要使用
      System.out.printf
      清除打印代码

    在这种情况下,需要从字符串解析为整数。下面是一个示例:

    String simplenumber= "10";
    int num = Integer.parseInt(simplenumber);
    
    在代码中:

    公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in)


    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);
        }}