3

在给定的程序中,我必须确保两个连续字符是否相同。我不应该增加变量 (Count) 的值...我尝试过“break;”,但这让我跳出了“for 循环”,这是非常适得其反的。我怎样才能跳过给定的部分,仍然继续“for循环”?

目前我对“Hello//world”的输出是3。它应该是2('/'表示''(空格))。

代码

import java.util.Scanner;
class CountWordsWithEmergency
{
    public static void main()
    {
        Scanner input = new Scanner(System.in);
        System.out.println("Please input the String");
        String inp = input.nextLine();
        System.out.println("thank you");
        int i = inp.length();
        int count = 1;
        for(int j=0;j<=i-1;j++) //This is the for loop I would like to stay in.
        {
            char check = inp.charAt(j);
            if(check==' ')
            {
                if((inp.charAt(j+1))==check) //This is the condition to prevent increase for
                                             //count variable.
                {
                    count = count; //This does not work and neither does break;
                }
                count++;
            }
        }
        System.out.println("The number of words are : "+count);
    }
}
4

9 回答 9

6

您可以使用关键字continue来完成您正在尝试做的事情。

但是,您也可以反转您的条件测试并count++仅在它不同时使用(!=而不是==在您的 if 中),否则什么也不做

于 2013-03-09T13:47:32.883 回答
3
if ((inp.charAt(j+1)) != check)  {
    count++;
}
于 2013-03-09T13:48:51.400 回答
2

您正在寻找的词是“继续”。

于 2013-03-09T13:47:27.830 回答
2

尝试这个:

if ((inp.charAt(j+1)) != check)  {
    count++;
}

通过检查来增加 count 的值!=

于 2013-03-09T13:49:35.997 回答
1

尝试在要跳过块的地方使用 continue 。

于 2013-03-09T13:47:28.757 回答
1

使用“继续;” 当您想中断当前迭代时。

于 2013-03-09T13:48:15.740 回答
1

continue 是 Java 编程中的一个关键字,用于跳过循环或代码块并以新条件重新执行循环。

continue 语句仅在 while、do while 和 for 循环中使用。

于 2014-04-30T16:05:07.340 回答
0

以下应该工作。

import java.util.Scanner;
class CountWordsWithEmergency
{
    public static void main()
    {
        Scanner input = new Scanner(System.in);
        System.out.println("Please input the String");
        String inp = input.nextLine();
        System.out.println("thank you");
        int i = inp.length();
        int count = 1;
        for(int j=0;j<=i-1;j++) //This is the for loop I would like to stay in.
        {
            char check = inp.charAt(j);
            if(check==' ')
            {
                if((inp.charAt(j+1))==check) //This is the condition to prevent increase for
                                             //count variable.
                {
                    continue;
                }
                count++;
            }
        }
        System.out.println("The number of words are : "+count);
    }
}
于 2013-03-09T13:49:27.673 回答
0

您可能想要使用continue关键字,或稍微修改逻辑:

import java.util.Scanner;
class CountWordsWithEmergency  
{
  public static void main()
  {
    Scanner input = new Scanner(System.in);
    System.out.println("Please input the String");
    String inp = input.nextLine();
    System.out.println("thank you");
    int i = inp.length();
    int count = 1;
    for(int j=0;j<=i-1;j++) //This is the for loop I would like to stay in.
    {
      char check = inp.charAt(j);
      if(check==' ')
      {
        if((inp.charAt(j+1))!=check)
        {
          count++;
        }
      }
    }
    System.out.println("The number of words are : "+count);
  }
}

编辑:

您可能想使用该类的split方法String

int wordsCount = str.split(' ').length;

希望能帮助到你 :)

于 2013-03-09T13:53:53.270 回答