-
-
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();