我的代码将c
的值返回为null!这有什么问题?
我希望将索引的值添加到字符串c
中,但它没有发生,甚至System.out.println("C: "+c+" A: "+a+" B: "+b);
的第一个代码也将所有变量都返回为0!
public String getData(){
String c ;
c = null;
int a = cb1.getSelectedIndex();
int b = cb2.getSelectedIndex();
System.out.println("C: "+c+" A: "+a+" B: "+b);
if (a == 1 && b == 1) {
c=""+a;
} else if (a == 1 && b == 2) {
c=""+a;
} else if (a == 2 && b == 1) {
c=""+a;
} else if (a == 2 && b == 2) {
c=""+a;
} else if (a == 3 && b == 1) {
c=""+a;
} else if (a == 4 && b == 1) {
c=""+a;
} else if (a == 4 && b == 2) {
c="";
} else if (a == 5 && b == 1) {
c=""+a+""+b;
} else if (a == 5 && b == 2) {
c=""+a+""+b;
} else if (a == 6 && b == 1) {
c=""+a+""+b;
} else if (a == 7 && b == 1) {
c=""+a+""+b;
} else if (a == 8 && b == 1) {
c=""+a+""+b;
} else if (a == 8 && b == 2) {
c=""+a+""+b;
} else if (a == 8 && b == 3) {
c=""+a+""+b;
}
System.out.println("C: "+c+" A: "+a+" B: "+b);
return c;
}
答案 0 :(得分:1)
我不明白你的if / else。这不会做同样的事吗? 我认为你应该看一下场景的预期结果,然后构建你的决策点,而不是所有可能的输入组合。
public String getData(){
String c ;
c = null;
int a = cb1.getSelectedIndex();
int b = cb2.getSelectedIndex();
System.out.println("C: "+c+" A: "+a+" B: "+b);
if (a <= 4 && b != 2)
{
c=""+a;
}
else if (a >= 5)
{
c=""+a+""+b;
}
else
{
c="";
}
}
如果只有3种不同的结果,通常您的代码中通常只能有2个决策点。当您觉得需要创建许多嵌套的if语句时,通常表明您需要重新构建代码
答案 1 :(得分:0)
我已将if {} else {if {} }
更改为if{} else if {}
public String getData(){
String c ;
c = null;
int a = cb1.getSelectedIndex();
int b = cb2.getSelectedIndex();
System.out.println("C: "+c+" A: "+a+" B: "+b);
if (a == 1 && b == 1) {
c=""+a;
} else if (a == 1 && b == 2) {
c=""+a;
} else if (a == 2 && b == 1) {
c=""+a;
} else if (a == 2 && b == 2) {
c=""+a;
} else if (a == 3 && b == 1) {
c=""+a;
} else if (a == 4 && b == 1) {
c=""+a;
} else if (a == 4 && b == 2) {
c="";
} else if (a == 5 && b == 1) {
c=""+a+""+b;
} else if (a == 5 && b == 2) {
c=""+a+""+b;
} else if (a == 6 && b == 1) {
c=""+a+""+b;
} else if (a == 7 && b == 1) {
c=""+a+""+b;
} else if (a == 8 && b == 1) {
c=""+a+""+b;
} else if (a == 8 && b == 2) {
c=""+a+""+b;
} else if (a == 8 && b == 3) {
c=""+a+""+b;
}
}
请尝试此代码。
你错过了其他一些条件。
答案 2 :(得分:0)
你的第一个systemoutprintln c必须为null ...如果没有选择,则c为null ... 每次选择改变时你也必须调用这个方法......
尝试不写
else{
if{
} else{
if{...
尝试写一个不错的
else if{...}
else if{...}
答案 3 :(得分:-1)
在连接它们之前,必须将整数变量转换为字符串。例如:
c=""+a.tostring();