繁体   English   中英

为什么在检查元音时我的for循环在第一个元素之后退出? Java的

[英]Why is my for loop exiting after the first element when checking vowels? Java

我是for循环和增强的for循环的新手,所以也许有人可以帮助您弄清楚为什么我的用于检查元音的增强的for循环仅在退出循环之前才检查第一个元素?

我在for循环下面放置了一个println(元音)以测试其输出,然后再对照输入进行检查,它只是拉“ A”。 辅音都工作正常,所以在这一点上我感到有些困惑。

任何能使我指出正确方向的方法或对此有所了解或有助于我理解的任何方法,将不胜感激。

谢谢!

导入java.util.Scanner;

公共课程WordStart {

public static void main(String[] args) {

    Scanner in=new Scanner(System.in);

    char[] consonants = {'B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z'};
    char[] vowels = {'A','E','I','O','U'};
    System.out.println("Please enter a word: ");
    String word=in.nextLine();
    char firstLetter=(Character.toUpperCase(word.charAt(0)));
    int found = -1;




    for (char vowel: vowels)
{//System.out.println(vowel);
        if (firstLetter == vowel)
    {
        found = 1;
            if (found==1)
            {
                System.out.print(firstLetter+" is a vowel.\n");
                System.exit(0);
            }

    }
     for (char consonant: consonants)   
        {
            if (firstLetter == consonant)
            {
            found = 2;
                {
                    if (found==2)
                    {
                        System.out.print(firstLetter+" is a consonant.\n");
                        System.exit(0);

                    }

                }
            }    
        }
     if (found<=0)
     {
         System.out.println(firstLetter+" is not a vowel or consonant.\n");
         System.exit(0);
     }

}

这是正确的代码:

导入java.util.Scanner; 公共课程WordStart {

public static void main(String[] args) {
    Scanner in=new Scanner(System.in);

    char[] consonants = {'B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z'};
    char[] vowels = {'A','E','I','O','U'};
    System.out.println("Please enter a word: ");
    String word=in.nextLine();
    char firstLetter=(Character.toUpperCase(word.charAt(0)));
    int found=0;

    for (char vowel:vowels)
    {
        if(firstLetter==vowel)
        {
            found=1;
            System.out.println(firstLetter+" is a vowel.");
            System.exit(0);

        }
    }

     for (char consonant: consonants)   
        {
            if (firstLetter == consonant)
            {
            found = 2;
            System.out.print(firstLetter+" is a consonant.\n");
            System.exit(0);
            }    
        }
     if (found<=0)
     {
         System.out.println(firstLetter+" is not a vowel or consonant.\n");
         System.exit(0);
     }       
}

}

格式完全不正确。 清理代码后,我发现问题出在我自己的粗心。

谢谢大家!

您需要删除System.exit(0); 语句,如果您想让程序继续执行。

尝试更换

System.exit(0);

break;

它将停止当前for循环的执行,并从下一个循环开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM