【问题标题】:Comparing i in loop with the next value and also accessing the last value将循环中的 i 与下一个值进行比较并访问最后一个值
【发布时间】:2018-12-28 06:07:43
【问题描述】:

在我的字符串中,我希望将一个值与下一个值进行比较。所以给定IVI,我想检查V后面是否跟着I,然后加4。如果没有,就加1。

for(int i = 0; i < s.Length; i++){
            if(s[i] == 'I'){
                if(s[i+1] == 'V'){
                    Console.WriteLine("1");
                    sum += 4;
                }
                else if(s[i] == 'X'){
                  Console.WriteLine("2");
                    sum += 9;
                }
                else{
                    Console.WriteLine("3");
                    sum += roman[s[i]];
                }
    }

但是它超出了 s[i+1] 的范围,但是我如何阻止它检查那么远呢?如果我使用 s.Length-1,那么我将无法获得最后一个值。

【问题讨论】:

  • 在访问s[i+1] 之前,您肯定可以将is.Length 进行比较吗?如果语句不限于一个条件,您可以使用&amp;&amp; (and) 和|| (or) 组合多个条件。
  • 如果要将罗马数字转换为整数,请使用 stackoverflow.com/questions/17711746/…

标签: c# for-loop indexing


【解决方案1】:

你只需要再添加一个条件:

            if(i <= s.length - 1 && s[i+1] == 'V'){

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多