从输入中得到两个数字并输出总和


import 'dart:math';
import "dart:io";
void main() {
print('enter first number:');
var num1 = stdin.readLineSync();
print('enter second number:');
var num2 = stdin.readLineSync();
print(num1 + num2);
}

这就是我一直得到的——

错误:类型为"String?"的值无法分配给的变量键入"String",因为"String?"可以为null,而"String"不可以,并且'错误:不能对'String?'调用运算符'+'因为它是可能为空的

我试过用字符串代替var,还有字符串?

将输入字符串转换为数字并确保它们不是null。

你得到的错误是由Dart的无效安全检查引起的。在stdin.readLineSync()返回null的情况下,您可以通过使用??运算符检查null并使用右侧的操作数(如果是(为变量提供默认值来确保变量不会为null。

import 'dart:io';
void main() {
print('enter first number:');
// Use int.parse(String) to convert input to a number
var num1 = int.parse(stdin.readLineSync() ?? '0');
print('enter second number:');
var num2 = int.parse(stdin.readLineSync() ?? '0');
print(num1 + num2);
}

如果你想要一个double而不是int,double有一个类似的静态方法来将字符串转换为数字。https://api.dart.dev/stable/2.15.1/dart-core/double/parse.html

另请参阅https://dart.dev/guides/libraries/library-tour#numbers

这应该可以解决

void main() {
print('enter first number:');
var num1 = stdin.readLineSync() ?? '-';
print('enter second number:');
var num2 = stdin.readLineSync() ?? '-';
print(num1 + num2);
}

相关内容

  • 没有找到相关文章

最新更新