在此感谢和抱歉我的英语。 :d
import javax.swing.JOptionPane;
public class rekursivloga {
public static void main(String[] args) {
String einlesenzahl = JOptionPane.showInputDialog("Bitte eine Zahl eingeben!");
int zahl = Integer.parseInt(einlesenzahl);
int ergebnis = logrekursiv(zahl);
private int logrekursiv(int zahl) {
if (zahl == 1) {
return 0;
}
if (zahl <1 ) {
return -1;
}
if (zahl >1)
return 1 + logrekursiv (zahl/2);
}
}
}
答案 0 :(得分:2)
你不能在另一个方法中使用方法。将logrekursiv
移动到类的主体中(并使其成为static
,因为其中没有基于状态的内容)。
答案 1 :(得分:0)
您在另一个方法(logrekursiv
方法)中声明了一个方法(main
)。这是非法的,你应该移动main方法的方法oustide。
public static void main(String[] args) {
String einlesenzahl = JOptionPane.showInputDialog("Bitte eine Zahl eingeben!");
int zahl = Integer.parseInt(einlesenzahl);
int ergebnis = logrekursiv(zahl);
}
private static int logrekursiv(int zahl) {
if (zahl == 1) {
return 0;
}
if (zahl <1 ) {
return -1;
}
else {
return 1 + logrekursiv (zahl/2);
}
}
另外,我用else语句替换了最后一个if语句,因为它完全相同,并使编译器确保最终返回一个值。
请确保您阅读了一些Java教程,因为您似乎尚未正确学习该语言。