-1

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);
    }
}

文字列の条件が満たされない場合(user <7、letter!= 1)にプログラムが終了し、必要なのはもう一度質問することを除いて、コードは必要なことをすべて実行します。誰かが私がこれを達成する方法を知っていますか?

4

3 に答える 3

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)......
于 2013-02-16T00:36:08.263 に答える
0

簡単な方法は、ブール条件を使用してメインロジックをループ内にラップすることです。入力に「エラー」がある場合、この条件は真のままです。ユーザーが希望どおりに進むと、条件はfalseになります。

あなたのコードは次のようになります:

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を使用することをお勧めします。

于 2013-02-16T00:36:26.677 に答える
0

呼び出すことができるメソッドにループコードを配置する必要があります。条件が満たされない場合は、質問に戻り、その条件に応じて、プログラムを終了するか、ループメソッドを呼び出すことができます。

于 2013-02-16T00:19:02.430 に答える