变量“ double”给我错误,程序正在执行无限循环?

时间:2018-10-31 19:55:20

标签: java

我需要问用户他想记笔记多少次,然后循环播放  他需要记下多少次并最终计算出moyenne,但是我把那一倍的a = a + n放了进去;表示它会计算便签号码,最后在s.o.p中,我将便签号码除以他先问了多少。 java给我错误,有帮助吗?

这是我的代码:

package minmax;

import java.util.Scanner;

public class MinMax {

  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    int x, y, z;
    System.out.println("Combien de notes vous avez? ");
    x = in .nextInt();

    for (y = 0; y < x; y++) {
      do {
        System.out.println("Mettez votre note :");
        z = in .nextInt();
      }
      while (z < 20 || z > 0); {
        double a = a + n;
      }
    }

    System.out.println("Votre moyenne est : " + (a / x));
  }
}

2 个答案:

答案 0 :(得分:1)

简单:

double a = a + n;

您不能定义变量并使用自身对其进行初始化。

含义:既不能声明a,也不能给需要a的{​​{1}}赋值。

换句话说:您编写的代码确实没有任何意义。也许您应该简单地将:a放在该语句的上方,然后再做:double a = 0再往下。

当然:也使用真实姓名。 a = a + na,这些名称毫无意义。使用一些能告诉人类读者这些变量意图的东西。

答案 1 :(得分:1)

修复和建议:

  1. 必须先初始化变量(严格地不引用自身),“更新”(指的是a=a+somethinga++a+=something类事物)只能在之后发生< / li>
  2. 在Java中,通常使变量声明和用法彼此接近,并记住可以在单个语句中声明和初始化变量。
  3. 在使用do-while循环的情况下,请不要在while(...);之后加上括号和缩进行,因为这些行与do-while循环本身处于同一级别
  4. .前面的空格看起来很奇怪,除非您将表达式分成多行

将它们放在一起:

package minmax;

import java.util.Scanner;

public class MinMax {

  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    System.out.println("Combien de notes vous avez? ");
    int x = in.nextInt();

    double a = 0;

    for (int y = 0; y < x; y++) {
      int z;
      do {
        System.out.println("Mettez votre note :");
        z = in.nextInt();
      }
      while (z < 0 || z > 20);
      a = a + z;
    }

    System.out.println("Votre moyenne est : " + (a / x));
  }
}

(加号a=a+n成为a=a+z的原因很明显,其中z包含来自用户的数字,并且必须交换比较方向-假设您希望数字介于0之间。 ..20)