无法理解为什么for循环超出范围

饱足的

我正在学习c#,并且有家庭作业可以在控制台应用程序中制作简单的字典。我写了所有代码,它应该可以正常工作,但是在其中一个for循环中,程序抛出了Error:System.IndexOutofRange我尝试了所有我所知道的(我只是初学者,所以我不太了解),但是它总是会出错。该程序的主要思想是用户必须输入希望使用的单词数,然后以他的语言(我是希伯来语,所以在程序中是希伯来语)和英语输入单词,并将单词保存在两个不同的数组中,但是在相同的索引中。然后程序要求用户输入其语言的句子,然后程序在句子上运行以找到单词(每次程序看到空格时,它都会开始一个新单词),然后使用另一个for循环,它会在希伯来语数组中查找,如果它找到匹配的词,但该词在相同的索引中但在英语数组中,如果找不到,它将写入原始词。

 static void Main(string[] args)
    {
        Console.WriteLine("Enter the number of words you wish to use");
        int wordsNumber = int.Parse(Console.ReadLine());

        string[] hebrew = new string[wordsNumber];
        string[] english = new string[wordsNumber];

        for (int i = 0; i < wordsNumber; i++)
        {
            Console.WriteLine("Enter word in Hebrew.");
            hebrew[i] = Console.ReadLine();
            Console.WriteLine("Now enter the translate of {0} in English.",hebrew[i]);
            english[i] = Console.ReadLine();
        }

        Console.WriteLine("Now enter the sentence that you want to translate..and press ENTER");
        string searchSentence = Console.ReadLine();
        string translateWord = "";
        string result = "";
        while(searchSentence != "stop")
        {

            for (int i = 0; i < searchSentence.Length;i++ )
            {
                translateWord = "";
                while ((searchSentence[i] == ' ')&&(searchSentence.Length > i))//Skip the spaces      in the start of the sentence
                    i++;
                while ((searchSentence[i] != ' ') && (searchSentence.Length > i))//Here is the problem when with the OutOfRnge
                {
                    translateWord += searchSentence[i];
                    i++;
                }
                for(int j = 0;j<hebrew.Length ;j++)
                {
                    if (translateWord == hebrew[j])
                    {
                        result += english[j];
                    }
                    else
                    {
                        result += translateWord[i];
                    }
                    result += " ";
                 }
            }
            Console.WriteLine(result);

            Console.WriteLine("Enter new sentence for translate or enter 'stop' to EXIT the  programm");
            searchSentence = Console.ReadLine();  
        }
汉斯·帕桑特
   while ((searchSentence[i] != ' ') && (searchSentence.Length > i))

考虑一下您的阅读方式(从树林的右到左)正在影响您编写代码的方式。无论是&&操作数的顺序还是在Length测试中,此代码都是向后的。因此,不会利用&&运算符的短路行为。可能很难学习,这是您必须要做的事情。

避免出现以下异常:

   while ((i < searchSentence.Length) && (searchSentence[i] != ' '))

这样可以确保searchSentence [i]不会抛出IndexOutOfRangeException。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法理解为什么True / False无效

来自分类Dev

无法理解为什么UISegmentedControl返回nil

来自分类Dev

为什么我的for循环超出范围?

来自分类Dev

无法理解为什么这小段代码无法正常工作

来自分类Dev

无法理解为什么这小段代码无法正常工作

来自分类Dev

Cassandra-无法理解为什么这种简单的设置无法正常工作?

来自分类Dev

为什么我的int []数组循环超出范围?

来自分类Dev

无法理解为什么外键对此代码保持空白

来自分类Dev

无法理解为什么事件未定义

来自分类Dev

mongodb-无法理解为什么/如何使用map-reduce

来自分类Dev

无法理解为什么递归深度超过了限制

来自分类Dev

MIPS和$ 31,无法理解为什么数据存储在寄存器$ 31中

来自分类Dev

无法理解为什么“ selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互”

来自分类Dev

无法理解为什么向每个递归调用中添加1

来自分类Dev

无法理解为什么git merge -s我们的将忽略先前的提交

来自分类Dev

无法理解为什么我得到System.ArgumentNullException的用户代码未处理

来自分类Dev

无法理解为什么Javascript正则表达式不起作用

来自分类Dev

无法理解为什么分配后获得垃圾价值

来自分类Dev

无法理解为什么我的THREE.js对象是部分透明的

来自分类Dev

无法理解为什么replace()在这里不起作用

来自分类Dev

无法理解为什么会发生此错误-Swift

来自分类Dev

无法理解为什么ISP速度通过无线速度很慢

来自分类Dev

无法理解为什么我得到一个空指针错误

来自分类Dev

无法理解为什么函数不断在d3.js上被调用

来自分类Dev

无法理解为什么此网址映射有效吗?

来自分类Dev

无法理解为什么在运行以下代码时应用程序崩溃

来自分类Dev

无法理解为什么我的 Java 正则表达式不起作用

来自分类Dev

无法理解为什么使用传播运算符

来自分类Dev

似乎无法理解为什么 SQL 查询没有给我正确的响应

Related 相关文章

  1. 1

    无法理解为什么True / False无效

  2. 2

    无法理解为什么UISegmentedControl返回nil

  3. 3

    为什么我的for循环超出范围?

  4. 4

    无法理解为什么这小段代码无法正常工作

  5. 5

    无法理解为什么这小段代码无法正常工作

  6. 6

    Cassandra-无法理解为什么这种简单的设置无法正常工作?

  7. 7

    为什么我的int []数组循环超出范围?

  8. 8

    无法理解为什么外键对此代码保持空白

  9. 9

    无法理解为什么事件未定义

  10. 10

    mongodb-无法理解为什么/如何使用map-reduce

  11. 11

    无法理解为什么递归深度超过了限制

  12. 12

    MIPS和$ 31,无法理解为什么数据存储在寄存器$ 31中

  13. 13

    无法理解为什么“ selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互”

  14. 14

    无法理解为什么向每个递归调用中添加1

  15. 15

    无法理解为什么git merge -s我们的将忽略先前的提交

  16. 16

    无法理解为什么我得到System.ArgumentNullException的用户代码未处理

  17. 17

    无法理解为什么Javascript正则表达式不起作用

  18. 18

    无法理解为什么分配后获得垃圾价值

  19. 19

    无法理解为什么我的THREE.js对象是部分透明的

  20. 20

    无法理解为什么replace()在这里不起作用

  21. 21

    无法理解为什么会发生此错误-Swift

  22. 22

    无法理解为什么ISP速度通过无线速度很慢

  23. 23

    无法理解为什么我得到一个空指针错误

  24. 24

    无法理解为什么函数不断在d3.js上被调用

  25. 25

    无法理解为什么此网址映射有效吗?

  26. 26

    无法理解为什么在运行以下代码时应用程序崩溃

  27. 27

    无法理解为什么我的 Java 正则表达式不起作用

  28. 28

    无法理解为什么使用传播运算符

  29. 29

    似乎无法理解为什么 SQL 查询没有给我正确的响应

热门标签

归档