Java 类型不匹配:无法从double转换为int
需要编写一个程序来计算所有数字的总和,然后在总和值以5或8结尾时给出结果。请帮助更正此代码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 >
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");
}
}
}