【问题标题】:Calulate two random numbers in flutter在颤振中计算两个随机数
【发布时间】:2019-01-29 14:49:25
【问题描述】:

我正在尝试生成两个不同的随机数并将它们相加,但 Flutter 似乎不喜欢我的数学。我不断收到消息说没有为 Random 类定义“+”。

import 'package:flutter/material.dart';
import 'dart:math';

void main() => runApp(MaterialApp(
      title: 'Random Numbers',
      theme: ThemeData(primarySwatch: Colors.orange),
      home: MyHome(),
    ));

class MyHome extends StatefulWidget {
  @override
  _MyHomeState createState() => _MyHomeState();
}

class _MyHomeState extends State<MyHome> {
  @override
  Widget build(BuildContext context) {
    var num1 = new Random();
    for (var i = 0; i < 10; i++) {
      print(num1.nextInt(10));
    }
    var num2 = new Random();
    for (var i = 0; i < 10; i++) {
      print(num2.nextInt(10));
    }
    //var sum = num1 + num2;

    return Container();
  }
}

我的目标是显示如下:“2 + 5 =” 用户将在其中填写答案。如果正确,请执行此操作。

【问题讨论】:

    标签: random dart flutter numbers calculation


    【解决方案1】:

    错误告诉您您正在尝试添加两个 Random 对象,而不是两个数字。您在循环中使用nextInt() 正确打印它们,但是当您尝试对它们求和时,您使用的是Random 类型的原始变量。

    试试这个:

    class _MyHomeState extends State<MyHome> {
      @override
      Widget build(BuildContext context) {
    
        // Instantiate a Random class object
        var numGenerator = new Random();
    
        //You don't need a second loop because it was the same exact code,
        //only with a different variable name.
        for (var i = 0; i < 10; i++) {
          print(numGenerator.nextInt(10));
        }
        // Save the numbers you generated. Each call to nextInt returns a new one
        var num1 = numGenerator.nextInt(10);
        var num2 = numGenerator.nextInt(10);
        var sum = num1 + num2;
    
        //use num1, num2 and sum as you like    
    
        return Container();
      }
    }
    

    【讨论】:

    • 非常感谢。现在,当我运行它时,我从每个 num1 和 num 2 中得到了 10 个整数。从总和中我得到了一个答案,它不能与 num1 和 num2 相加。 I/flutter (17272): num 1 I/flutter (17272): 2 I/flutter (17272): num 2 I/flutter (17272): 3 I/flutter (17272): sum I/flutter (17272): 12
    • 我只用了一个计算来运行它:Num1 =>2;数字2 => 3; sum=>12
    • @J.W 每次拨打nextInt 时都会收到一个新号码。你在保存这些数字吗?也许我们应该使代码更简洁,我已经编辑了答案以使其更好。保存您生成的值,以便稍后知道该数字是多少。
    • @J.W 如果这解决了您的问题,请通过单击我的答案投票部分下的绿色复选标记将此答案标记为正确。谢谢:)
    【解决方案2】:

    非常感谢 Gerorge 并为我的缺席感到抱歉。

    我得到了一些帮助,通过 dart 解决了这个问题

    Random seed = Random();
    const int MAX_VALUE = 10;
    
    int val1 = seed.nextInt(MAX_VALUE);
    int val2 = seed.nextInt(MAX_VALUE);
    int sum = val1 + val2;
    
    print('$val1 + $val2 = $sum'); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 2022-07-04
      • 1970-01-01
      • 2021-07-01
      相关资源
      最近更新 更多