gpt4 book ai didi

java - 代码效率。使用循环的有效方法

转载 作者:行者123 更新时间:2023-12-01 18:38:59 25 4
gpt4 key购买 nike

我正在为 Web 应用程序构建一个框架,并希望执行某些简单的任务,例如输入检索和显示它们。下面是代码,我觉得代码可以改进,但效率不高。注意:这三种方法的实现是相同的。

开关需要实现两次,一次在 IF 循环内,另一次用于一般情况。

    public class selector8
{
public static void main (String [] args){

selector8 obj1 = new selector8();
Scanner inputString = new Scanner (System.in);
Scanner inputYN = new Scanner (System.in);
String input, A,B,C;

System.out.println("Choose. A || B || C || X to exit");
input = inputString.nextLine();
char contLoop1 = 'y';
do{
if(input.equalsIgnoreCase("y")) {
input = "";
System.out.println("Choose. A || B || C || X to exit");
input = inputString.nextLine();
switch (input){

case("a"):
obj1.startMethod1(input);
break;

case("b"):
obj1.startMethod2(input);
break;

case("c"):
obj1.startMethod3(input);
break;

case("x"):
System.out.println("Goodbye");
break;

case ("n"):
System.out.println("See ya");
break;

default:
System.out.println("Invalid argument. Try again");
break;

}
} else
switch (input){

case("a"):
obj1.startMethod1(input);
break;

case("b"):
obj1.startMethod2(input);
break;

case("c"):
obj1.startMethod3(input);
break;

case("x"):
System.out.println("Goodbye");
break;

case ("n"):
System.out.println("See ya");
break;

default:
System.out.println("Invalid argument. Try again");
break;

}
System.out.println("Do want to try again " +"Y/N" );
input = inputYN.nextLine();
contLoop1 = input.charAt(0);
}while(contLoop1 != 'n');
}

public void startMethod1(String A){
String input;

Scanner inputString = new Scanner (System.in);
System.out.println("Enter a or b");
input = inputString.nextLine();

switch (input){

case("a"):
System.out.println("output parsed");
break;

case("b"):
System.out.println("output parsed");
break;

default:
System.out.println("Invalid argument");
}
}

public void startMethod2(String B){

String input;
Scanner inputString = new Scanner (System.in);
System.out.println("Enter a or b");
input = inputString.nextLine();
switch (input){
case("a"):
System.out.println("output parsed");
break;
case("b"):
System.out.println("output parsed");
break;

default:
System.out.println("Invalid argument");
break;
}
}

public void startMethod3(String C){

String input;
Scanner inputString = new Scanner (System.in);
System.out.println("Enter a or b");
input = inputString.nextLine();
switch (input){
case("a"):
System.out.println("output parsed");
break;
case("b"):
System.out.println("output parsed");
break;

default:
System.out.println("Invalid argument");
}
}
}

顺便说一句,您能否告诉我为什么可以在没有对象的情况下调用静态类?

public class StaticImplementation{
public static void main (String [] args){
StaticImplementation obj1 = new StaticImplementation();
obj1.stat(); //is invalid
stat(); //is valid
}
static void stat(){
System.out.println("Static class");
}

非常感谢。祝你有美好的一天!

最佳答案

使用 Java,您可能会采用更“面向对象”的方法,并将这些切换留给 C 编程:)

做类似的事情:

interface Action {
void start();
}

class Jumper implements Action {
public void start() {
System.out.println("Jump!");
}
}

class Sitter implements Action {
public void start() {
System.out.println("Sit!");
}
}

class Runner implements Action {
public void start() {
System.out.println("Run!");
}
}

class Test {
public static void main(String[] args) {
// init phase
Map<String, Action> map = new HashMap<String, Action>();
map.put("a", new Jumper());
map.put("b", new Runner());

// usage
map.get("a").start();
}
}

你可以有两个映射,一个用于 Y,另一个用于其余,你也可以有一个由两个字符串 Pair 组成的键

关于java - 代码效率。使用循环的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20696441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com