将数据存储在swift中的类数组中

时间:2017-07-02 13:48:01

标签: arrays swift

我试图自己快速学习,但是我打了一堵小墙,我在这里错过了什么?

https://i.stack.imgur.com/WmZUu.png

import Foundation

class aluno
{
    var cpf: String?
    var notaP1: Double = 0.0
    var notaP2: Double = 0.0
    var notaFinalAluno: Double = 0.0
}

var condiçaoLoop = 1
var count = 0

func verificaNota()
{
    while condiçaoLoop != 0
    {
        print("Digite o cpf do aluno")
        let cpfAluno = readLine()
        print("Digite a nota da P1 do aluno")
        let notaP1Aluno = Double(readLine()!)
        print("Digite a nota da P2 do aluno")
        let notaP2Aluno = Double(readLine()!)

        let notaFinalAluno = (notaP1Aluno! + notaP2Aluno!)/2

        if notaFinalAluno >= 7
        {
            print("Aluno aprovado com média: \(notaFinalAluno)")
            print("Deseja verificar mais algum aluno? 1 Sim  0 Não")
            let resposta = Int(readLine()!)
            if resposta == 0
            {
                condiçaoLoop = 0
            }
        }
        else
        {
            print("Aluno de final com média: \(notaFinalAluno)")
            print("Deseja verificar mais algum aluno? 1 Sim  0 Não")
            let resposta = Int(readLine()!)
            if resposta == 0
            {
                condiçaoLoop = 0
            }
        }
        count += 1
    }
    for i in 1...count
    {
        var notasAlunos: [aluno] = []
        notasAlunos.cpf[i] = cpfAluno
        notasAlunos.notaP1[i] = notaP1Aluno!
        notasAlunos.notaP2[i] = notaP2Aluno!
        notasAlunos.notaFinalAluno[i] = notaFinalAluno
    }
}
verificaNota()

我想要做的是从用户那里获得两个等级,计算其最终得分,然后将数据存储在一个数组中

2 个答案:

答案 0 :(得分:1)

你的for循环中的

是你定义一个新数组而不是一个新的aluno对象。试试这个:

var notasAlunos: [aluno] = [] 
for i in 1...count
    {
        var novoAluno: Aluno()
        novoAluno.cpf[i] = cpfAluno
        novoAluno.notaP1[i] = notaP1Aluno!
        novoAluno.notaP2[i] = notaP2Aluno!
        novoAluno.notaFinalAluno[i] = notaFinalAluno
        notasAlunos.append(novoAluno)
    }

答案 1 :(得分:0)

您在while循环中定义的所有常量都没有在循环外部的作用域。它们存在于循环内但不在其外部。在cpfAluno循环之前(之外)定义while等,以便它们在for in循环内可用。

    func verificaNota()
    {
       var cpfAluno = 0.0
       var notaP1Aluno = 0.0
       var notaP2Aluno = 0.0
       var notaFinalAluno = 0.0

       while condiçaoLoop != 0
       {
          print("Digite o cpf do aluno")
          cpfAluno = readLine()
          print("Digite a nota da P1 do aluno")
          notaP1Aluno = Double(readLine()!)
          print("Digite a nota da P2 do aluno")
          notaP2Aluno = Double(readLine()!)

          notaFinalAluno = (notaP1Aluno! + notaP2Aluno!)/2