我正在做初学Java课程。我不确定如何为每个if语句存储变量。这就是我的代码:
// Variables for the final sum of all even numbers
int evensum1,evensum2,evensum3,evensum4;
if (oneeven < 10){
evensum1 = oneeven;
}
if (twoeven < 10){
evensum2 = twoeven;
}
if (threeeven < 10){
evensum3 = threeeven;
}
if (foureven < 10){
evensum4 = foureven;
}
// Determine if the digits have 2 characters (>= 10); if yes, separate them
else if (oneeven >= 10){
// Convert each multiplied number to a string to separate them again
String char1even = "" + oneeven;
char sep11 = char1even.charAt(0);
char sep12 = char1even.charAt(1);
int val11 = Character.getNumericValue(sep11);
int val12 = Character.getNumericValue(sep12);
evensum1 = val11 + val12;
}
else if (twoeven >= 10){
String char2even = "" + twoeven;
char sep21 = char2even.charAt(0);
char sep22 = char2even.charAt(1);
int val21 = Character.getNumericValue(sep21);
int val22 = Character.getNumericValue(sep22);
evensum2 = val21 + val22;
}
else if (threeeven >= 10){
String char3even = "" + threeeven;
char sep31 = char3even.charAt(0);
char sep32 = char3even.charAt(1);
int val31 = Character.getNumericValue(sep31);
int val32 = Character.getNumericValue(sep32);
evensum3 = val31 + val32;
}
else if (foureven >= 10){
String char4even = "" + twoeven;
char sep41 = char4even.charAt(0);
char sep42 = char4even.charAt(1);
int val41 = Character.getNumericValue(sep41);
int val42 = Character.getNumericValue(sep42);
evensum4 = val41 + val42;
}
// Add the separate even digits together
int finevensum = evensum1 + evensum2 + evensum3 + evensum4;
System.out.println(finevensum);
我在最后一行遇到麻烦。我想要做的是获得一个2位OR 1位第一/第二/第三/数字。根据数字的位数,数字的总和将不同。我想在最后添加数字。 如何将值存储在每个变量中,以便即使在if语句之后也可以使用它们?
答案 0 :(得分:3)
当你这样做时:
if (foureven < 10){
evensum4 = foureven;
}
// Determine if the digits have 2 characters (>= 10); if yes, separate them
else if (oneeven >= 10){
然后else
引用最后 if
。因此,如果foureven < 10
(无论oneeven
),都会输入。
你应该做那样的事情:
if (oneeven < 10){
evensum1 = oneeven;
} else { ... //Note that it's redundant to write oneeven >= 10
(对其余if
语句执行此操作)