我试图自己快速学习,但是我打了一堵小墙,我在这里错过了什么?
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()
我想要做的是从用户那里获得两个等级,计算其最终得分,然后将数据存储在一个数组中
答案 0 :(得分:1)
是你定义一个新数组而不是一个新的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