使用字符串内容重复方法

时间:2014-02-27 19:00:41

标签: java methods iteration

我有一份学校作业,我被要求编写一个程序 在对话框窗口中显示一个图形(男孩,女孩或火箭) 根据用户的选择。
虽然我设法这样做,但有一件事我无法解决。 在分配中,用户将能够选择如何 火箭的长度将通过键入数字来实现。
根据这个数字,我创建的两种方法将重复 本身使火箭的长度扩大。但我无法想出任何东西 这样做。

我一直在阅读各种教程(如果,等等),但我的经验有限 Java让我失败了。有什么想法怎么办?

    import static javax.swing.JOptionPane.* ;

    public class Figurer 
    {
        public static void main (String [] arg) 
        {
            String hälsning, indata ;
            char svar ;
            hälsning ="Hej!\n"
                 + "Detta program skriver ut en figur\n"
                 + "som du väljer i nästa fönster." ;
            showMessageDialog (null, hälsning) ;

    do
    {
        indata = showInputDialog ("Välj mellan följande figurer:\n"
             + "Pojke\n"
             + "Flicka\n"
             + "Raket") ;

        switch(indata) {
            case "Pojke" :
            case "pojke" :    
                String showBoy = figureBoy () ;
                showMessageDialog (null, showBoy) ;
                break;
            case "Flicka" :
            case "flicka" :    
                String showGirl = figureGirl () ;
                showMessageDialog (null, showGirl) ;
                break;
            case "Raket" :
            case "raket" :
                String showRocket = figureRocket () ;
                showMessageDialog (null, showRocket) ;
                break;

     }  
        indata = showInputDialog ("Vill du se en till figur? (j/n) ") ;   // Repetionssats för fler beräkningar
                svar = indata.charAt(0);
            }
            while (svar == 'j' || svar == 'J') ; 
            }

        //METOD: figureBoy
        //INNEHÅLL: Argument för ihopsättande av figur föreställande en pojke
        //ARGUMENT: boy, part_huvud (), part_base (), part_body () och part_cone () 
        //RETURNERAS: Sammanställningen av argumenten till variabel showBoy
        public static String figureBoy () 
        {
            String boy = part_huvud () ;  
            boy = boy + "\n" + part_base () + "\n" + part_body () + "\n"
            + part_base () + "\n" + part_cone () ;
            return boy;
        }
        //METOD: figureGirl
        //INNEHÅLL: Argument för ihopsättande av figur föreställande en flicka
        //ARGUMENT: girl, part_cone () och part_base () 
        //RETURNERAS: Sammanställningen av argumenten till variabel showGirl
        public static String figureGirl () 
        {
            String girl = part_huvud () ;  
            girl = girl + "\n" + part_cone () + "\n" + part_base () + "\n"
            + part_cone () ;
            return girl;
        }
        //METOD: figureRocket
        //INNEHÅLL: Argument för ihopsättande av figur föreställande en raket
        //ARGUMENT: rocket, part_base (), part_body () och part_cone 
        //RETURNERAS: Sammanställningen av argumenten till variabel showRocket
        public static String figureRocket () 
        {

        }
        //METOD: part_huvud
        //INNEHÅLL: Argument med tecken som föreställer ett huvud
        //ARGUMENT: Variabeln hu och sträng med tecken som formar huvudet 
        //RETURNERAS: Innehållet i variabeln hu som skickas till metoden figureBoy, figureGirl och figureRocket
        public static String part_huvud ()
        {
            String hu ;
            hu = "  /      \\ \n"
            + " |@,@| \n"
            + "  \\  v  /" ;
            return hu;
        //METOD: part_base
        //INNEHÅLL: Argument med tecken som föreställer ett tjockare streck
        //ARGUMENT: Variabeln ba och sträng med tecken som formar strecket 
        //RETURNERAS: Innehållet i variabeln ba som skickas till metoden figureBoy, figureGirl och figureRocket
        }
        public static String part_base ()
        {
            String ba ;
            ba = "=====" ;
            return ba  ;
        //METOD: part_body
        //INNEHÅLL: Argument med tecken som föreställer två paralella linjer
        //ARGUMENT: Variabeln ba och sträng med tecken som formar linjerna 
        //RETURNERAS: Innehållet i variabeln bo som skickas till metoden figureBoy, figureGirl och figureRocket    
        }
        public static String part_body ()
        {
            String bo ;
            bo = "|         |\n"
            +"|         |\n"   
            +"|         |" ;    
            return bo ;
        //METOD: part_cone
        //INNEHÅLL: Argument med tecken som föreställer en kona
        //ARGUMENT: Variabeln ba och sträng med tecken som formar konan 
        //RETURNERAS: Innehållet i variabeln co som skickas till metoden figureBoy, figureGirl och figureRocket    
        }
        public static String part_cone ()
        {
            String co ;
            co = "     /\\\n"
            +"   /    \\      \n"   
            +" /        \\       " ;    
            return co ;
        }
}   

2 个答案:

答案 0 :(得分:0)

不会回答并编写所有代码,但这里有一些方向。

首先,当涉及到字符串时,您可以更改为小写以进行不区分大小写的比较:

indata = indata.toLowerCase();

通过这种方式,您不需要将所有案件翻倍,即使他们意外地将第二个字母大写,您也会匹配。如果您需要做等于而不是切换,请执行以下操作:

indata.equalsIgnoreCase("some value");

甚至更好,避免null:

"someotherstring".equalsIgnoreCase(indata);

其次,您可以在循环期间构建任意长度的字符串,就像在循环中添加数字一样。但要完成此任务,请使用StringBuilder对象:

StringBuilder rocketBody = new StringBuilder();
int howmanypieces = (user input);
while (howmanypieces > 0) {

   rocketBody.append(rocketBodyPart());
   howmanypieces--;

}
rocketBody.toString();

答案 1 :(得分:0)

如果您有一个整数变量count,并且想要运行一些代码count次,请执行以下操作:

for (int i = 0; i < count; i++) {
    // code
}

这样做首先创建一个名为i的变量并将其初始化为0,然后重复代码直到i >= count。运行代码后,它还会将1添加到i

在循环内部,您可以使用变量i。循环第一次运行时,它将是0。下一次它将是1,依此类推。它永远不会等于count。在最后一次迭代中,它将是count - 1