0
私は非母音の数とともに文字列に含まれる母音の数をソートする必要がある学校向けのプログラムに取り組んでいます。私の先生は、ユーザーに継続を希望するかどうかを尋ねることを希望しています。そのため、プログラムを複数回実行することなく複数のテストケースを提供することができます。プログラムをループさせることに成功しましたが、私の問題は、前のテストケースの母音と母音以外の数字が次のテストケースに引き継がれることです。私は解決のためにオンラインの周りを検索してきたが、私はこれまで運がなかった。どんな助けでも大歓迎です。 (私はところで、私はまだ学ぶことがたくさん持っているプログラミングでのnoobだ。)Mapを使用してdo whileループ(Java)でデータをリセットする際の問題
import java.util.*;
class VowelReader
{
public static void main(String[] args)
{
String line;
int vi= 0, a = 0, e = 0, o = 0, u = 0, nonvowels = 0;
String answer = null;
Scanner scan = new Scanner (System.in);
do {
System.out.println("Enter a String to be processed for vowels: ");
line = scan.nextLine();
for(int i = 0; i < line.length(); i++){
char c = Character.toLowerCase(line.charAt(i));
switch (c)
{
case 'a':
a++;
break;
case 'e':
e++;
break;
case 'i':
vi++;
break;
case 'o':
o++;
break;
case 'u':
u++;
default:
nonvowels++;
break;
}
}
System.out.println(line);
System.out.println("a- " +a);
System.out.println("e- " +e);
System.out.println("i- " +vi);
System.out.println("o- " +o);
System.out.println("u- " +u);
System.out.println("Non-vowels -" +nonvowels);
System.out.println("Continue?(Y/N)");
answer = scan.nextLine();
}
while(answer.toLowerCase().equals("y"));
}
}
文字通り、ループの最後に0に設定することができます。より良い方法は、それ自身の関数にループコードを置き、それが母音カウントを返すようにすることです。 – Carcigenicate
私が無能であることをお詫びしますが、メインにすでに定義されている場合、どのように変数をリセットするのですか? – Mauser137
独自の関数にコードを記述すると、それらは関数内で定義され、関数が終了すると自動的に破棄されます。あなたは母音のコピーを 'main'に'返す 'でしょう。関数を使って返す方法を学んだことがありますか? – Carcigenicate