我一直在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>
答案 0 :(得分:0)
这是因为您在每行打印的*
个字符数不同。如果您的总行长度为total = dashes + stars
,并且每次从dashes
减去2,而每次向stars
添加2,则总行长度将保持不变。
在第二个金字塔中,您将dashes
减少一个,但将{2}添加到stars
,因此每条线的总长度增加1,从而在右侧产生金字塔效果文本。