2017-07-19 21 views
-1
import java.util.Scanner; 

public class lab05a 
{ 
    public static void main (String[] args) 
    { 
    String statement; 

    Scanner scan = new Scanner(System.in); 
    int vowela; 
    int vowele; 
    int voweli; 
    int vowelo; 
    int vowelu; 
    int nonvowel; 

    int vowela = 0; 
    int vowele = 0; 
    int voweli = 0; 
    int vowelo = 0; 
    int vowelu = 0; 

    statement = scan.nextString(); 
    statement = statement.toLowerCase(); 

    for (int i = 0; i <= statement.length(); count++) 
    { 
     char c = examplestring.charAt(i); 
     if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') 
     switch (c) 
     { 
     case 'a': 
      vowela += 1; 
      break; 
     case 'e': 
      vowele += 1; 
      break; 
     case 'i'; 
      voweli += 1; 
      break; 
     case 'o'; 
      vowelo += 1; 
      break; 
     case 'u'; 
      vowelu += 1; 
      break; 
     } 
     else 
     nonvowel +=1; 
    } 
     System.out.prinln("a: " + vowela); 
     System.out.prinln("e: " + vowele); 
     System.out.prinln("i: " + voweli); 
     System.out.prinln("o: " + vowelo); 
     System.out.prinln("u: " + vowelu); 
     System.out.prinln("nonvowel: " + novowel); 
    } 
} 

を作成するときに、私はこのようにそれをやって考える:「エラー:予想される」スイッチ

  • まず、私は文字列の文のすべての文字を反復処理するforループを作成します。
  • 次に、cstatement.charAt(i)と宣言されている)が母音であるかどうかを確認するforループに、if文を挿入します。
  • cが母音の場合は、スイッチを使用してその母音の数を1つ増やしてから壊します。
  • cが母音でない場合、母音の数に加算されます。
  • forループが完了すると、各文字のカウントが出力されます。私は問題を抱えていますどこ

スイッチです。ケース'a'とケース'e'のエラーは発生しませんが、ケース'i''u'の場合、エラー('Error: : Expected')が発生します。 この意味または理由を理解できません。ケース〜'u'は、ケース'a''e'のように書かれています。誰かが私を助けることができますか?

3 errors found: 
[line: 38] Error: : expected 
[line: 41] Error: : expected 
[line: 44] Error: : expected 

申し訳ありません。この投稿のフォーマットが不適切な場合は、私はスタックオーバーフローが新しくなりました。

+4

コードのスクリーンショットを投稿しないでください。 [あなたの質問を編集](https://stackoverflow.com/posts/45199020/edit)および[あなたのコードをフォーマットする](https://stackoverflow.com/editing-help)を参照してください。 – tnw

+0

'statement = scan.nextString()。toLowerCase();'は 'statement = scan 'でなければなりません。next()。toLowerCase(); ' – CodingNinja

+0

申し訳ありません。編集してフォーマットを修正しようとしていますが、問題があります。 – Holopleather

答えて

0

あなたのコード内の多くのエラーがありますが、私はそれを修正(下に掲載)とあなたの過ちのいくつかを指摘している:

  1. 変更statement = scan.nextString().toLowerCase();statement = scan.nextLine().toLowerCase();

  2. I don't understand what this means or why, as cases 'i' through 'u' are written the same way as cases 'a' and 'e'.

ケースio、およびuにセミコロン(; )の代わりにコロン(:)を使用します。そのわずかな違いが原因でエラーが発生しています。 switchの文を次のように変更してください。

switch(c) { 
     case 'a': 
      vowela++; 
      break; 
     case 'e': 
      vowele++ 
      break; 
     case 'i': 
      voweli++ 
      break; 
     case 'o': 
      vowelo++ 
      break; 
     case 'u': 
      vowelu++; 
      break; 
    } 

ここにあなたの変更されたコードがあります。今では正確であり、それは動作します:あなたはこのような母音をチェックif文を削除するなどのいくつかの変更を気づいているかもしれません

import java.util.Scanner; 

public class lab05a { 

    public static void main (String[] args) { 
     String statement; 
     Scanner scan = new Scanner(System.in); 
     int vowela = 0; 
     int vowele = 0; 
     int voweli = 0; 
     int vowelo = 0; 
     int vowelu = 0; 
     int nonvowel = 0; 
     statement = scan.nextLine().toLowerCase(); 
     for (int i = 0; i < statement.length(); i++) { 
      char c = statement.charAt(i); 
      switch (c) { 
       case 'a': 
        vowela++; 
        break; 
       case 'e': 
        vowele++; 
        break; 
       case 'i': 
        voweli++; 
        break; 
       case 'o': 
        vowelo++; 
        break; 
       case 'u': 
        vowelu++; 
        break; 
       default: 
        nonvowel++; 
        break; 
      } 
     } 

     System.out.println("a: " + vowela); 
     System.out.println("e: " + vowele); 
     System.out.println("i: " + voweli); 
     System.out.println("o: " + vowelo); 
     System.out.println("u: " + vowelu); 
     System.out.println("nonvowel: " + nonvowel); 
    } 
} 

。そのすべてを行うのではなく、デフォルトのケースを追加しました。他の条件が真でない場合は、defaultにあるものが実行されます。私もあなたの変数vowela,vowelevoweliなどを初期化しました。vowela += 1を変更しました。同じ効果(他の文字と同じ)を生成するvowela++に変更しました。

+0

ありがとうTommy私は今正しい道にいると思います。 – Holopleather

関連する問題