3
respostas

Função saca não funciona

Não está reconhecendo a palavra 'saldo' e fora isso não consegui fazer uso do this na fun.deposita, o que pode ser? Vale ressaltar que eu também não consegui botar a função deposita dentro da class Conta, não a transformando em uma função membro, como corrijo isso?

Segue o código, obrigado:

class Conta {
    var titular = ""
    var numero = 0
    var saldo = 0.0

}

fun main() {

    println("Bem-Vindo ao Bytebank")
    val contaGabriel = Conta()
    contaGabriel.titular = "Gabriel Sodré"
    println(contaGabriel.titular)
    val contaVitor = Conta()
    contaVitor.titular = "Vitor Dias"
    println(contaVitor.titular)

    fun deposita(conta: Conta, valor: Double) {
        conta.saldo += valor
    }

    fun saca(conta: Conta, valor: Double){
        if(saldo >= valor) {
            saldo -= valor
        }
    }

    println("Depositando na conta do Gabriel")
    deposita(contaGabriel, 50.0)

    fun testaCopiasEReferencias() {

        val numeroX = 10
        var numeroY = numeroX
        numeroY++

        val contaJoao = Conta()
        contaJoao.titular = "João"
        var contaMaria = Conta()
        contaMaria.titular = "Maria"

        println("Titular conta João: $contaJoao.titular")
        println("Titular conta Maria: $contaMaria.titular")

        println("numeroX $numeroX")
        println("numeroY " + numeroY)
    }

    for (i in 1..5) run {

        val titular: String = "Gabriel Sodré $i"
        val numeroConta: Int = 1000 + i;
        var saldo = i + 10.0;

        println("Titular: $titular");
        println("Número da conta: $numeroConta");
        println("Saldo: $saldo");
        println()

        when {
            saldo > 0.0 -> {
                println("Seu saldo é positivo")
            }
            saldo == 0.0 -> {
                println("Seu saldo é neutro")
            }
            else -> {
                println("Seu saldo é negativo")
            }
        }

        fun testaCondicoes(saldo: Double) {
            if (saldo > 0.0) {
                println("Seu saldo é positivo")
            } else if (saldo == 0.0) {
                println("Seu saldo é neutro")
            } else {
                println("Seu saldo é negativo")
            }
        }
    }
}
3 respostas

Oi Vitor

Tenta declarar a sua classe Conta conforme abaixo:

class Conta {
    var titular = ""
    var numero = 0
    private var saldo = 0.0

    fun deposita(valor: Double) {
        this.saldo += valor
    }

    fun saca(valor: Double) {
        if (saldo >= valor) {
            saldo -= valor
        }
    }

    fun transfere(valor: Double, destino: Conta): Boolean {
        if (saldo >= valor) {
            saldo -= valor
            destino.deposita(valor)
            return true
        }
        return false
    }

    fun getSaldo(): Double {
        return saldo
    }

    fun setSaldo(valor: Double){
        if(valor > 0){
            saldo = valor
        }
    }
}

Se eu usar esse código diz que o main não pode ser encontrado :/

Oi Vitor

Envia seu código completo que está dando "main não pôde ser encontrado" para eu dar uma olhada, por favor