Java 类型不匹配:无法从double转换为int

Java 类型不匹配:无法从double转换为int,java,loops,addition,Java,Loops,Addition,需要编写一个程序来计算所有数字的总和,然后在总和值以5或8结尾时给出结果。请帮助更正此代码 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in= new Scanner(System.in); int customerID = in.nextInt(); while(customerID >

需要编写一个程序来计算所有数字的总和,然后在总和值以5或8结尾时给出结果。请帮助更正此代码

import java.util.Scanner;
public class Main {

    public static void main(String[] args) {

        Scanner in= new Scanner(System.in);
        int customerID = in.nextInt();
        while(customerID > 0) 
        {
        int Reminder = customerID % 10;
        int sum = sum+ Reminder;
        customerID = customerID / 10;
        }
        if(sum%5||sum%8)
        {
        System.out.println("Lucky Customer");
        }else
        {
        System.out.println("Unlucky Customer");
        }
        if(sum <0)
        {
        System.out.println("Invalid Input");
        }
        }
        }
import java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int customerID=in.nextInt();
而(customerID>0)
{
int提醒=客户ID%10;
整数总和=总和+提醒;
customerID=customerID/10;
}
如果(总和%5 | |总和%8)
{
System.out.println(“幸运客户”);
}否则
{
System.out.println(“不幸的客户”);
}

如果(sum除了此代码没有产生您提到的错误之外,代码还有其他问题。我尝试解决它们

public static void main(String[] args) {
    Scanner in= new Scanner(System.in);
    int customerID = in.nextInt();
    int sum = 0;
    // sum needs to be initialized outside the while loop
    // or else you wouldn't be able to use it outside it
    while(customerID > 0) {
        int Reminder = customerID % 10;
        sum = sum+ Reminder;
        customerID = customerID / 10;
    }
    if(sum%5 == 0 || sum%8 == 0) {
        //You cannot use int as a condition in if
        System.out.println("Lucky Customer");
    } else {
        System.out.println("Unlucky Customer");
    }
    if(sum <0) {
        System.out.println("Invalid Input");
    }
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int customerID=in.nextInt();
整数和=0;
//sum需要在while循环外部初始化
//否则你就不能在外面用了
而(customerID>0){
int提醒=客户ID%10;
总和=总和+提醒;
customerID=customerID/10;
}
如果(总和%5==0 | |总和%8==0){
//在if中不能使用int作为条件
System.out.println(“幸运客户”);
}否则{
System.out.println(“不幸的客户”);
}
如果(求和而不是执行

if(sum%5||sum%8)
    {
    System.out.println("Lucky Customer");
    }
其中,值16的总和%8为真,因此您可以尝试此方法


只有当您的输入包含点(例如:“3.0”)时,此代码才会引发此异常。因此,要么传递int值(例如:“3”),要么使用scanner.nextDouble()将其转换为int

还要看看Yash的答案,因为你的代码还有其他问题


+永远不要用大写字母(“提醒”)写变量名!!

请更正代码以删除一些编译错误

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in= new Scanner(System.in);
        int customerID = in.nextInt();
        int sum = 0;
        while(customerID > 0) {
            int Reminder = customerID % 10;
            sum = sum + Reminder;
            customerID = customerID / 10;   
        }
        if(sum % 5 == 0 || sum % 8 == 0) {
            System.out.println("Lucky Customer");
        } else {
            System.out.println("Unlucky Customer");
        }
        if(sum <0) {
            System.out.println("Invalid Input");
        }
    }
}
import java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int customerID=in.nextInt();
整数和=0;
而(customerID>0){
int提醒=客户ID%10;
总和=总和+提醒;
customerID=customerID/10;
}
如果(总和%5==0 | |总和%8==0){
System.out.println(“幸运客户”);
}否则{
System.out.println(“不幸的客户”);
}

if(sum)表示该代码没有产生该错误。如果它产生了,您会希望告诉我们它发生在哪一行,您提供了什么输入,您进行了什么调试,以及您不理解的错误(至少)请通读,特别是@Joe,TJ-我确实在我设置的新eclipse工作区中遇到了这个错误,我将确保在这个平台上提问时提高清晰度。感谢Hanks Pooja的输入!!这很有帮助。感谢yash,对我的代码提供了详细的帮助。我的eclipse工作区设置可能有问题,我仍然我正在努力。我做了你提到的更正,这很有帮助,谢谢你的详细输入。
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in= new Scanner(System.in);
        int customerID = in.nextInt();
        int sum = 0;
        while(customerID > 0) {
            int Reminder = customerID % 10;
            sum = sum + Reminder;
            customerID = customerID / 10;   
        }
        if(sum % 5 == 0 || sum % 8 == 0) {
            System.out.println("Lucky Customer");
        } else {
            System.out.println("Unlucky Customer");
        }
        if(sum <0) {
            System.out.println("Invalid Input");
        }
    }
}