Мой Darkcode показывает ошибку "значение локальной переменной 'choice' не используется" - PullRequest
0 голосов
/ 16 февраля 2020

Я только начал изучать дротик для флаттера и написал этот код для простого калькулятора, но есть ошибка, связанная с переменной «выбор». Она объявляется в то время как l oop, но когда я использую ее для проверки условий, он показывает «Значение локальной переменной« выбор »не используется». Пожалуйста, помогите мне.

import 'dart:io';

void main() {
  do {
    print(
        "Choose operation:\n1.Addition\n2.Subtraction\n3.Division\n4.Multiplication\nChoice:");
    int ch = int.parse(stdin.readLineSync());

    print("Enter two numbers");

    int num1 = int.parse(stdin.readLineSync());
    int num2 = int.parse(stdin.readLineSync());

    switch (ch) {
      case 1:
        print("Addition of $num1 and $num2 is ");
        print(add(num1, num2));
        break;
      case 2:
        print("Subtraction of $num1 and $num2 is ");
        print(sub(num1, num2));
        break;
      case 3:
        print("Division of $num1 and $num2 is ");
        print(div(num1, num2));
        break;
      case 4:
        print("Multiplication of $num1 and $num2 is ");
        print(mul(num1, num2));
        break;
      default:
        print("Invalid choice...");
    }

    String choice = stdin.readLineSync();
  } while (choice == "Yes" || choice == "yes");
}

int add(int x, int y) => (x + y);
int sub(int x, int y) => (x - y);
double div(int x, int y) => (x / y);
int mul(int x, int y) => (x * y);

Отображаемые ошибки:

Значение локальной переменной 'choice' не используется - строка 30

Неопределенное имя 'choice' - строка 30 *

Неопределенное имя 'choice' - строка 30

1 Ответ

1 голос
/ 16 февраля 2020

Поскольку вы объявили выбор внутри do-while, его область видимости находится только внутри блока do-while, поэтому не отображается в условии. Попробуйте объявить выбор перед ключевым словом do:

void main() {
    String choice;
    do {
        print("Choose operation:\n1.Addition\n2.Subtraction\n3.Division\n4.Multiplication\nChoice:");
        int ch= int.parse(stdin.readLineSync());
        print("Enter two numbers");
        int num1=int.parse(stdin.readLineSync());
        int num2=int.parse(stdin.readLineSync());
        switch(ch)
        {
            case 1:
               print("Addition of $num1 and $num2 is ");
               print(add(num1,num2));
               break;
            case 2:
               print("Subtraction of $num1 and $num2 is ");
               print(sub(num1,num2));
               break;
            case 3:
               print("Division of $num1 and $num2 is ");
               print(div(num1,num2));
               break;            
            case 4:
               print("Multiplication of $num1 and $num2 is ");
               print(mul(num1,num2));
               break;
            default:  
                print("Invalid choice...");
        }
        choice = stdin.readLineSync();
    } while (choice=="Yes" || choice=="yes");
}
...