毕业于cs学位,但有一年没有编程工作,所以我想回到它。很抱歉,如果这很明显,但有关此代码的两个主要问题。
在案例1中,我希望它回到代码的开头并再次寻找另一个输入。因此,我在案例1结束时再次调用了readinput。它忽略了这一点并继续打印出案例
其次,我理解在面向对象编程中,必须存在一个类的实例才能被调用。我创建了这个实例并称之为帮助。为什么当我使用我的readInput方法时,我不只是打电话给帮助,而是我必须打电话给帮助?
package practice;
import java.io.IOException;
public class Help {
public static void main(String[] args) throws IOException {// needed for a keyboard input
Help help = new Help();
System.out.println("Help on:");
System.out.println(" 1. if");
System.out.println(" 2. switch");
System.out.println("Choose one:");
readInput(help);
}
public static void readInput(Help help) throws IOException {
char choice = (char) System.in.read();
switch (choice) {
case '1':
System.out.println("The if:\n");
System.out.println(" if(conditional) statement;");
System.out.println(" else statement;");
readInput(help);
// break;
case '2':
System.out.println("The switch:\n");
System.out.println("switch (expression) {");
System.out.println(" case constant:");
System.out.println(" statement sequence");
System.out.println(" break;");
System.out.println(" //...");
System.out.println("}");
break;
default:
System.out.print("Selection not found.");
}
}
}
答案 0 :(得分:0)
它不会忽略它。键入 1 1 1 输入,您将看到readInput()被执行多次。如果键入 1 输入 1 ,则第二个字符是换行符,您只是属于switch语句的默认情况。
help
是变量的名称(在这种情况下为参数)。 Help
是参数的类型。当您定义方法readInput(Help help)
时,您说这个方法需要一个Help
类型的参数,您选择命名help
。
答案 1 :(得分:0)
第一种情况下的break语句被注释,我认为这就是执行第二个块的原因。
关于第二个问题,您已经能够调用方法readInput方法而无需从Help实例调用它,因为您将其声明为静态方法,可以始终从任何其他方法调用静态方法(无论其是否为实例方法或静态方法,如main方法)。