协助在java中循环代码

时间:2013-02-16 00:12:21

标签: java loops boolean variable-assignment

我需要帮助在Java中循环我的代码。到目前为止,我有:

import java.util.Scanner;
public class chara{
    public static void main(String[]args){
        int count = 0;
        Scanner input = new Scanner(System.in); 
        System.out.println("Input a string");
        String user=input.nextLine();
        if(user.length()<7)
        {
            return;
        }
        else
        {
        }
        System.out.println("Now input a letter to be replaced");
        String letter = input.next();
        if(letter.length()!=1) 
        {
            return;
        }
        else
        {
        }
        String user2 = user.replace(letter, "-");
        String user3 = user.replace(letter, "");
        count += (user.length() - user3.length());
        System.out.println(user2);
        System.out.println(user3);
        System.out.println("#"+letter+"'s: "+count);
    }
}

代码执行我想要的所有操作,但是当不满足字符串条件时(用户&lt; 7,字母!= 1),程序终止,我需要它做的是再次提出问题。有谁知道我怎么能做到这一点?

3 个答案:

答案 0 :(得分:0)

您需要将循环代码放在可以调用的方法中,然后当不满足conidtion时,您可以回到您的问题,并根据该条件退出程序,或调用循环方法。

答案 1 :(得分:0)

你只需要一个具有中断条件的循环,这应该为你做到:

   Scanner input = new Scanner(System.in); 
       System.out.println("Input a string");
       String user=input.nextLine();
       while (true)
       {
           if(user.length() <7 ) {break;}
           input = new Scanner(System.in); 
           System.out.println("Too long, input a string < 7");
             user=input.nextLine();

       }

   if(user.length()<7)......

答案 2 :(得分:0)

一种简单的方法是将主逻辑包含在具有布尔条件的循环中。当输入中存在“错误”时,此条件保持为真。当用户按需要继续时,条件为假。

您的代码看起来如此:

import java.util.Scanner;
public class Tester{
    public static void main(String[]args){
        int count = 0;
        boolean keepGoing = true;
        Scanner input = new Scanner(System.in); 
        while(keepGoing) {

            System.out.println("Input a string");
            String user=input.nextLine();
           if(user.length()<7)
           {
               keepGoing = true;
               //enter an error message here
           }
           else
           {
               System.out.println("Now input a letter to be replaced");
                String letter = input.next();
                if(letter.length()!=1) 
                {
                    keepGoing = true;
                    //enter an error message here
                }
                else
                {
                    String user2 = user.replace(letter, "-");
                    String user3 = user.replace(letter, "");
                    count += (user.length() - user3.length());
                    System.out.println(user2);
                    System.out.println(user3);
                    System.out.println("#"+letter+"'s: "+count);
                    keepGoing = false;
                }
           }
        }   
        input.close();  //Close resources
    }
}

相依

惯例是类名以大写字母开头。在您的情况下,您的课程应该是Chara,而不是chara

此外,打开资源时请务必关闭它们。这是为了避免资源泄露。有些IDE会告诉你类似Resource leak: 'input' is never closed的内容。使用一个好的IDE来帮助解决像这样的潜在问题是个好主意。