-
-
Save jacobaraujo7/ef7ff45a73c074fb1a30691da6324962 to your computer and use it in GitHub Desktop.
import 'dart:io'; | |
main() { | |
calculoImc(); | |
} | |
//Programa que calcula o imc | |
calculoImc() { | |
print("=== Digite seu Peso"); | |
String textPeso = stdin.readLineSync(); | |
int peso = int.parse(textPeso); | |
print("=== Digite sua Altura"); | |
String textAltura = stdin.readLineSync(); | |
double altura = double.parse(textAltura); | |
double imc = calcImcExpr(peso, altura); | |
imprimirResultado(imc); | |
} | |
//função que recebe o peso e a altura e retorna o imc | |
double calcImcExpr(int peso, double altura) { | |
return peso / (altura * altura); | |
} | |
//imprime o resultado baseado no imc passado por parâmetro | |
imprimirResultado(double imc) { | |
print("==========================="); | |
if (imc < 18.5) { | |
print("Abaixo do peso"); | |
} else if (imc > 18.5 && imc < 24.9) { | |
print("Peso Normal"); | |
} else if (imc > 25 && imc < 29.9) { | |
print("Sobrepeso"); | |
} else if (imc > 30 && imc < 34.9) { | |
print("Obesidade grau 1"); | |
} else if (imc > 35 && imc < 39.9) { | |
print("Obesidade grau 2"); | |
} else { | |
print("Obesidade grau 3"); | |
} | |
} |
Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
O meu também deu este erro, não acho quem possa ajudar por isso estou com o curso parado, vou ter que migrar para outro curso, o jacob até é um bom professor, a culpa mesmo é do dart que funciona bem em umas máquinas outras não, também já copiei e colei o código original acima pra ver se o meu tá errado, mesmo assim deu ruim, não encontra na internet quem possa ajudar pois a linguagem não é tão consolidada quanto javascript, mas infelizmente preciso aprender esta merda se quiser manter meu app na googleplay.
tive o mesmo problema mano eu acho que e por causa das atualizacoes do flutter
Fala galera quem está tendo este problema é na hora de declarar a variável 'var peso = double.parse(TextPeso);' está assim no código porém deve-se colocar um ! assim : var peso = double.parse(TextPeso!); para que o dart tenha certeza de que a variável será uma string e não nulo. Mesma coisa dever ser feita na declaração var altura = double.parse(TextAltura!);
Para funcionar coloquei dessa forma como o tutorres indicou:
print("=== Digite seu Peso");
String? textPeso = stdin.readLineSync();
int peso = int.parse(textPeso!);
print("=== Digite sua Altura");
String? textAltura = stdin.readLineSync();
double altura = double.parse(textAltura!);
Achei que eu estava fazendo algo errado. Mas ao copiar e colar o código também deu erro aqui.
imc.dart:10:27: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
String textPeso = stdin.readLineSync();
^
imc.dart:14:29: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
String textAltura = stdin.readLineSync();