为什么我的打印输出有所不同?

时间:2017-07-03 19:16:52

标签: swift loops

我一直在Swift中慢慢建立技能组合。用循环绘制是我发现的一种很好的方式,可以理解语言的微妙之处。

这是一个我无法弄清楚的有趣谜题:
我一直试图像这样生成一个截断的金字塔一段时间。

我终于得到了一个使用for循环生成的粗略的。 screenshot here但正如你所看到的,我之前的一次尝试产生了一个截断的金字塔。

两者之间的唯一区别是在第19行和第33行,变量“negativeSpaceThree”分别减少2和1。

任何人都可以解释为什么输出如此不同?我真的很想了解这些细微差别。它可能只是我的数学,但我想知道它是否是一个错误。

非常感谢您提供的任何意见。

下面添加的代码:

<mvc:View
    xmlns:html="http://www.w3.org/1999/xhtml"
    xmlns:core="sap.ui.core"
    xmlns:mvc="sap.ui.core.mvc"
    xmlns:l="sap.ui.layout"
    xmlns="sap.m"
    controllerName="controller.App"
    visibleBlock="true">
    <App>
        <pages>
        ...
            <core:Fragment fragmentName="{= ${/BOOL_VALUE} === 'true' ? 'view.fragment1' : 'view.fragment2'}" type="XML" />
        ...
        </pages>
    </App>
</mvc:View>

1 个答案:

答案 0 :(得分:0)

这是因为您在每行打印的*个字符数不同。如果您的总行长度为total = dashes + stars,并且每次从dashes减去2,而每次向stars添加2,则总行长度将保持不变。

在第二个金字塔中,您将dashes减少一个,但将{2}添加到stars,因此每条线的总长度增加1,从而在右侧产生金字塔效果文本。