如何在循环中降低值

我想做一个简单的程序来计算5年分期付款的债务分期付款。要求是:

  1. 第一年和第二年银行利息为8%

  2. 第三年的银行利息为9%

  3. 第4年和第5年银行利息为10%

输出应为:

  1. 第一期和第二期付款的价值

  2. 第3年之前的剩余债务

  3. 第三期付款的价值

  4. 第4年之前的剩余债务

  5. 第四期和第五期付款的价值

这是我的代码:

package main

import "fmt"


func main() {

    var debt = 200000000

    var installment int


    for i := 1; i <= 5; i++ {

        var remainDebt int

        if i < 3 {

            installment = (debt / 5) + (debt * 8 / 100)

            remainDebt = debt - installment

            fmt.Println("Year", i, "is", installment)

            fmt.Println("Remaining debt is", remainDebt)

        } else if i == 3 {

            installment = (debt / 5) + (debt * 9 / 100)

            remainDebt = debt - installment

            fmt.Println("Year", i, "is", installment)

            fmt.Println("Remaining debt is", remainDebt)


        } else if i > 3 {

            installment = (debt / 5) + (debt * 10 / 100)

            fmt.Println("Year", i, "is", installment)


        }


    }

}

我的代码的输出是:


Year 1 is 56000000

Remaining debt is 144000000

Year 2 is 56000000

Remaining debt is 144000000

Year 3 is 58000000

Remaining debt is 142000000

Year 4 is 60000000

Year 5 is 60000000

我不知道为什么每年剩下的债务是错误的。所以,我想我要么使用了错误的语法,要么我试图做一些无法做到的事情。也许最有可能有经验的人会立即看到问题所在。


慕桂英546537
浏览 68回答 1
1回答

慕森卡

var remainDebt int这条线应该在for循环之前,它的起始值应该是债务值。在代码中,每次迭代都会成为其默认值 0。但是在循环的每次迭代中,它应该不断减少。行应更正如下。因为您应该减少您支付的贷款的资本金额,而不是分期利息。remainDebt = debt - instalment`remainDebt&nbsp;=&nbsp;remainDebt&nbsp;-&nbsp;debt&nbsp;/&nbsp;5`您可以在此处查看更正后的代码
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go