Java,在我的代码中只有第一个for语句有效

Java,在我的代码中只有第一个for语句有效,java,loops,for-loop,Java,Loops,For Loop,刚开始学习Java和一般编程,我需要输入50个字符,计算和显示元音、辅音、数字和特殊字符。在我的元音的第一个for语句之后,它不再正常工作了,我不知道为什么它不工作,所以任何提示都会有帮助,谢谢 import java.util.Scanner; public class CharArray50 { static Scanner scanner = new Scanner(System.in); public static void main() { int z = 0;

刚开始学习Java和一般编程,我需要输入50个字符,计算和显示元音、辅音、数字和特殊字符。在我的元音的第一个for语句之后,它不再正常工作了,我不知道为什么它不工作,所以任何提示都会有帮助,谢谢

import java.util.Scanner;

public class CharArray50 {
  static Scanner scanner = new Scanner(System.in);

  public static void main() {
    int z = 0;
    do {
      String Str50 = "";
      int Vowelsnum = 0;
      int Consonantsnum = 0;
      int Digitsnum = 0;
      int SpecialCharnum = 0;
      System.out.print("Input 50 Characters Max: ");
      Str50 = scanner.nextLine();
      Str50 = Str50.toLowerCase();
      System.out.println("Characters: " + Str50);
      System.out.print("Vowels: ");
      for (int x = 0; x < Str50.length(); x++) {
        char Char50 = Str50.charAt(x);
        if ((Char50 == 'a')
            || (Char50 == 'e')
            || (Char50 == 'i')
            || (Char50 == 'o')
            || (Char50 == 'u')) {
          Vowelsnum += 1;
          System.out.print(" " + Char50);
        }
      }
      System.out.println("\nNumber of Vowels: " + Vowelsnum);
      System.out.print("Consonants: ");
      for (int a = 0; a < Str50.length(); a++) {
        char Char50 = Str50.charAt(a);
        if ((Char50 == 'b')
            || (Char50 == 'c')
            || (Char50 == 'd')
            || (Char50 == 'f')
            || (Char50 == 'g')
            || (Char50 == 'h')
            || (Char50 == 'j')
            || (Char50 == 'k')
            || (Char50 == 'l')
            || (Char50 == 'm')
            || (Char50 == 'n')
            || (Char50 == 'p')
            || (Char50 == 'q')
            || (Char50 == 'r')
            || (Char50 == 's')
            || (Char50 == 't')
            || (Char50 == 'v')
            || (Char50 == 'w')
            || (Char50 == 'x')
            || (Char50 == 'y')
            || (Char50 == 'z'))
          ;
        {
          Consonantsnum += 1;
          System.out.print(" " + Char50);
        }
      }
      System.out.println("\nNumber of Consonants: " + Consonantsnum);
      System.out.print("Digits: ");
      for (int b = 0; b < Str50.length(); b++) {
        char Char50 = Str50.charAt(b);
        if ((Char50 == '0')
            || (Char50 == '1')
            || (Char50 == '2')
            || (Char50 == '3')
            || (Char50 == '4')
            || (Char50 == '5')
            || (Char50 == '6')
            || (Char50 == '7')
            || (Char50 == '8')
            || (Char50 == '9'))
          ;
        {
          Digitsnum += 1;
          System.out.print(" " + Char50);
        }
      }
      System.out.println("\nNumber of Digits: " + Digitsnum);
      System.out.print("Special Characters: ");
      for (int c = 0; c < Str50.length(); c++) {
        char Char50 = Str50.charAt(c);
        if ((Char50 == '~')
            || (Char50 == '`')
            || (Char50 == '!')
            || (Char50 == '@')
            || (Char50 == '#')
            || (Char50 == '$')
            || (Char50 == '%')
            || (Char50 == '^')
            || (Char50 == '&')
            || (Char50 == '*')
            || (Char50 == '(')
            || (Char50 == ')')
            || (Char50 == '-')
            || (Char50 == '_')
            || (Char50 == '+')
            || (Char50 == '=')
            || (Char50 == '{')
            || (Char50 == '}')
            || (Char50 == '[')
            || (Char50 == ']')
            || (Char50 == '|')
            || (Char50 == '/')
            || (Char50 == ':')
            || (Char50 == ';')
            || (Char50 == '"')
            || (Char50 == '<')
            || (Char50 == '>')
            || (Char50 == ',')
            || (Char50 == '.')
            || (Char50 == '?'))
          ;
        {
          SpecialCharnum += 1;
          System.out.print(" " + Char50);
        }
      }
      System.out.println("\nNumber of Special Characters: " + SpecialCharnum);
    } while (z == 0);
  }
}
import java.util.Scanner;
公共类字符50{
静态扫描仪=新扫描仪(System.in);
公共静态void main(){
int z=0;
做{
字符串Str50=“”;
int-vouelsnum=0;
int辅音snum=0;
int Digitsnum=0;
int SpecialCharnum=0;
系统输出打印(“最多输入50个字符:”);
Str50=scanner.nextLine();
Str50=Str50.toLowerCase();
System.out.println(“字符:+Str50”);
系统输出打印(“元音:”);
对于(int x=0;x
在if语句后面有分号:)

这里有很多代码需要查看(请学习设置代码的格式!这有助于包括您在内的所有人阅读它!从一开始就学会正确使用它会带来好处),但立即跳出的是
if
语句中的
if(something);{
:删除
。啊,非常感谢@AndyTurner!很抱歉,我是新手,所以我甚至没有检查它的结果,我似乎没有在元音if语句中添加;,但在其他每个if语句中都添加了;。它现在起作用了。您可能想知道一个更简洁地检查字符是否在某些集合中的技巧,例如,对于元音:
如果(“aeiou”.indexOf(Char50)>=0{…}
。哦,哇,谢谢你,这要简洁得多,我会记住的,谢谢你。