所以我有这个非常糟糕的代码,我之前在这里发布只是为了看到它是aceptable,它不是,它告诉我,把它分成方法应该是我应该做的第一件事,但我我有点混淆我应该分割多少种方法? 有什么时候做一个方法的标准,什么时候不做,我常常不确定我是应该直接在main方法中编写代码,还是在其他类上做一个方法,在main方法上调用它。
import java.util.ArrayList;
import java.util.Scanner;
public class MainClass {
public static void main(String[]args){
ArrayList<Pessoas> lista = new ArrayList<Pessoas>();
Pessoas p1 = new Portugueses();
Pessoas p2 = new Alemaes();
lista.add(p1);
lista.add(p2);
System.out.println("Insira o nome de o cidadao Portugues");
Scanner entrada = new Scanner(System.in);
String n1 = entrada.nextLine();
p1.setNome(n1);
System.out.println("Insira o nome de o cidadao Alemao");
String n2 = entrada.nextLine();
p2.setNome(n2);
System.out.println("Deseja inserir as idades dos 2 cidadaos?");
String resposta = entrada.nextLine();
if(resposta.equals("sim")){
System.out.println("Insira a idade de o cidadao Portugues " + p1.getNome());
int i = entrada.nextInt();
p1.setIdade(i);
System.out.println("Insira a idade de o cidadao Alemao " +p2.getNome());
int i1 = entrada.nextInt();
p2.setIdade(i1);
}
else if (resposta.equals("nao")){
System.out.println("Nao vai inserir a idade dos cidadaos");
}else{System.out.println("Comando nao reconhecido,Por favor insira sim ou nao");
System.out.println("Deseja inserir a idade dos cidadaes?");
while(!resposta.equals("sim")||!resposta.equals("nao")){
System.out.println("Comando nao reconhecido,Por favor insira sim ou nao");
System.out.println("Deseja inserir a idade dos cidadaes?");
resposta = entrada.nextLine();
if(resposta.equals("sim")){
System.out.println("Insira a idade de o cidadao Portugues" + p1.getNome());
int i = entrada.nextInt();
p1.setIdade(i);
System.out.println("Insira a idade de o cidadao Alemao " +p2.getNome());
int i1 = entrada.nextInt();
p2.setIdade(i1);
break;
}
else if (resposta.equals("nao")){
System.out.println("Nao vai inserir a idade dos cidadaos");
break;
}
}
}
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
while(resposta.equals("sim")){
System.out.println("Deseja criar um cidadao Portugues ou Alemao?");
resposta = entrada.nextLine();
switch(resposta){
case "portugues":
Pessoas p3 = new Portugueses();
lista.add(p3);
System.out.println("Insira o nome de o cidadao Portugues");
String n3 = entrada.nextLine();
p3.setNome(n3);
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
break;
case"alemao":
Pessoas p4 = new Alemaes();
lista.add(p4);
System.out.println("Insira o nome de o cidadao Alemao");
String n4 = entrada.nextLine();
p4.setNome(n4);
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
break;
default:
System.out.println("Insira se que criar um cidadao portugues ou alemao s.f.f");
do{
System.out.println("Deseja criar um cidadao Portugues ou Alemao?klklkk");
resposta = entrada.nextLine();
switch(resposta){
case "portugues":
Pessoas p6 = new Portugueses();
lista.add(p6);
System.out.println("Insira o nome de o cidadao Portugues");
n3 = entrada.nextLine();
p6.setNome(n3);
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
break;
case"alemao":
Pessoas p7 = new Alemaes();
lista.add(p7);
System.out.println("Insira o nome de o cidadao Alemao");
n4 = entrada.nextLine();
p7.setNome(n4);
System.out.println("Quer adicionar outro cidadao?pppp");
resposta = entrada.nextLine();
if(resposta.equals("nao")){
System.out.println("Mostrar lista de cidadaes?");
resposta = entrada.nextLine();
if(resposta.equals("sim")){
System.out.println("Lista de cidadaes " + lista.toString());
break;
}else{System.out.println("Decidiu nao ver a lista de cidadaes!");
break;
}
}else{
while(!resposta.equals("sim")||!resposta.equals("nao")){
System.out.println("Comando nao reconhecido!");}
}
break;
default:
System.out.println("Insira se que criar um cidadao portugues ou alemao s.f.f");
System.out.println("Deseja criar um cidadao Portugues ou Alemao?");
resposta = entrada.nextLine();
while(!resposta.equals("portugues")||!resposta.equals("alemao")){
System.out.println("Insira se que criar um cidadao portugues ou alemao s.f.f");
System.out.println("Deseja criar um cidadao Portugues ou Alemao?llll");
resposta = entrada.nextLine();
do{
switch(resposta){
case "portugues":
do{
Pessoas p9 = new Portugueses();
lista.add(p9);
System.out.println("Insira o nome de o cidadao Portugues");
n3 = entrada.nextLine();
p9.setNome(n3);
System.out.println("Quer adicionar outro cidadao?ööööö");
resposta = entrada.nextLine();
if(resposta.equals("nao")){
System.out.println("Mostrar lista de cidadaes?");
resposta = entrada.nextLine();
if(resposta.equals("sim")){
System.out.println("Lista de cidadaes " + lista.toString());
break;
}else{System.out.println("Decidiu nao ver a lista de cidadaes!");
break;
}
}else{
while(!resposta.equals("sim")||!resposta.equals("nao")){
System.out.println("Comando nao reconhecido!");
break;}}
while(resposta.equals("sim")){
System.out.println("Deseja criar um cidadao Portugues ou Alemao?");
resposta = entrada.nextLine();
switch(resposta){
case "portugues":
Pessoas p10 = new Portugueses();
lista.add(p10);
System.out.println("Insira o nome de o cidadao Portugues");
n3 = entrada.nextLine();
p10.setNome(n3);
System.out.println("Quer adicionar outro cidadao?lllll");
resposta = entrada.nextLine();
if(resposta.equals("nao")){
System.out.println("Mostrar lista de cidadaes?");
resposta = entrada.nextLine();
if(resposta.equals("sim")){
System.out.println("Lista de cidadaes " + lista.toString());
break;
}else{System.out.println("Decidiu nao ver a lista de cidadaes!");
break;
}
}else{
while(!resposta.equals("sim")||!resposta.equals("nao")){
System.out.println("Comando nao reconhecido!");
break;}}
case"alemao":
Pessoas p11 = new Alemaes();
lista.add(p11);
System.out.println("Insira o nome de o cidadao Alemao");
n4 = entrada.nextLine();
p11.setNome(n4);
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
if(resposta.equals("nao")){
System.out.println("Mostrar lista de cidadaes?");
resposta = entrada.nextLine();
if(resposta.equals("sim")){
System.out.println("Lista de cidadaes " + lista.toString());
break;
}else{System.out.println("Decidiu nao ver a lista de cidadaes!");
break;
}
}else{
while(!resposta.equals("sim")||!resposta.equals("nao")){
System.out.println("Comando nao reconhecido!");
break;}}
break;}}
}while(resposta.equals("sim"));
break;
case"alemao":
do{
Pessoas p8 = new Alemaes();
lista.add(p8);
System.out.println("Insira o nome de o cidadao Alemao");
n4 = entrada.nextLine();
p8.setNome(n4);
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
while(resposta.equals("sim")){
System.out.println("Deseja criar um cidadao Portugues ou Alemao?");
resposta = entrada.nextLine();
switch(resposta){
case "portugues":
Pessoas p10 = new Portugueses();
lista.add(p10);
System.out.println("Insira o nome de o cidadao Portugues");
n3 = entrada.nextLine();
p10.setNome(n3);
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
break;
case"alemao":
Pessoas p11 = new Alemaes();
lista.add(p11);
System.out.println("Insira o nome de o cidadao Alemao");
n4 = entrada.nextLine();
p11.setNome(n4);
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
break;}}
}while(resposta.equals("sim"));
break;}}while(resposta.equals("sim"));
}}}while(resposta.equals("sim"));
}
}
if(resposta.equals("nao")){
System.out.println("Mostrar lista de cidadaes?");
resposta = entrada.nextLine();
if(resposta.equals("sim")){
System.out.println("Lista de cidadaes " + lista.toString());
}else{System.out.println("Decidiu nao ver a lista de cidadaes!");
}
}else{
while(!resposta.equals("sim")||!resposta.equals("nao")){
System.out.println("Comando nao reconhecido!");
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
while(resposta.equals("sim")){
System.out.println("Deseja criar um cidadao Portugues ou Alemao?");
String resposta3 = entrada.nextLine();
switch(resposta3){
case "portugues":
Pessoas p3 = new Portugueses();
lista.add(p3);
System.out.println("Insira o nome de o cidadao Portugues");
String n3 = entrada.nextLine();
p3.setNome(n3);
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
break;
case"alemao":
Pessoas p4 = new Alemaes();
lista.add(p4);
System.out.println("Insira o nome de o cidadao Alemao");
String n4 = entrada.nextLine();
p4.setNome(n4);
System.out.println("Quer adicionar outro cidadao?");
resposta = entrada.nextLine();
break;
default:
System.out.println("Insira se que criar um cidadao portugues ou alemao s.f.f");
}
}if(resposta.equals("nao")){
System.out.println("Mostrar lista de cidadaes?");
resposta = entrada.nextLine();
if(resposta.equals("sim")){
System.out.println("Lista de cidadaes " + lista.toString());
break;
}else if(resposta.equals("nao")){System.out.println("Decidiu nao ver a lista de cidadaes!");
break;
}else{
while(!resposta.equals("sim")|| !resposta.equals("nao")){
System.out.println("Comando nao reconhecido,Mostrar lista de cidadaes?Sim ou Nao?");
resposta = entrada.nextLine();
if(resposta.equals("nao")){
System.out.println("Mostrar lista de cidadaes?");
resposta = entrada.nextLine();
if(resposta.equals("sim")){
System.out.println("Lista de cidadaes " + lista.toString());
break;
}else if(resposta.equals("nao")){System.out.println("Decidiu nao ver a lista de cidadaes!");
break;
}
}
}
}
}
}
}
}
}
答案 0 :(得分:1)
首先正确缩进代码,然后继续进行重构。某些IDE具有自动缩进功能(例如Eclipse中的Ctrl-Shift-F)
使其更具可读性的简单方法是将每个case
和default
处理程序分解为自己的方法。尝试让每个方法执行一个特定的任务 - 程序的逻辑将更容易理解。