2016-10-05 2 views
0

Привет, я очень новичок в кодировании, и я продолжаю получать ошибку «.class», когда пытаюсь запустить код ниже. Что мне не хватает?'.class error' в java

import java.util.Scanner; 

import java.util.Scanner; 


public class PeopleWeights { 
    public static void main(String[] args) { 
     Scanner scnr = new Scanner (System.in); 
     userWeight = new int[5]; 
     int i = 0; 

     userWeight[0] = 0; 
     userWeight[1] = 5; 
     userWeight[2] = 6; 
     userWeight[3] = 7; 
     userWeight[4] = 9; 

     System.out.println("Enter weight 1: "); 
     userWeight = scnr.nextInt[]; 

     return; 
    } 
} 
+4

"' userWeight = scnr.nextInt []; '" - Это неправильные скобки. Используйте '()'. Это исправит одну из ваших проблем. – resueman

ответ

0

Прежде всего не импортировать пакеты больше, чем когда-то, теперь отпускает к реальным «жучков».

Здесь:

import java.util.Scanner; 

public class PeopleWeights { 
    public static void main(String[] args) { 
     Scanner scnr = new Scanner (System.in); 
     int userWeight[] = new int[5];//You need to declare the type 
     //of a variable, in this case its int name[] 
     //because its an array of ints 
     int i = 0; 

     userWeight[0] = 0; 
     userWeight[1] = 5; 
     userWeight[2] = 6; 
     userWeight[3] = 7; 
     userWeight[4] = 9; 

     System.out.println("Enter weight 1: "); 
     userWeight[0] = scnr.nextInt();//I belive that you wanted to change 
     // the first element of the array here. 
     //Also nextInt() is a method you can't use nextInt[] 
     //since it doesn't exists 
     //return; You dont need it, because the method is void, thus it doesnt have to return anything. 

    } 

} 

Кроме того, вместо этого:

userWeight[0] = 0; 
userWeight[1] = 5; 
userWeight[2] = 6; 
userWeight[3] = 7; 
userWeight[4] = 9; 

вы можете сделать это во время объявления массива:

int userWeight[] = {0,5,6,7,9};//instantiate it with 5 integers 
1

Это проблема

userWeight = scnr.nextInt[]; 

решить эту проблему:

userWeight[0] = scnr.nextInt();  //If you intended to change the first weight 

ИЛИ

userWeight[1] = scnr.nextInt();  //If you intended to change the value of userWeight at index 1 (ie. the second userWeight) 

Должно работать

PS: В качестве меры предосторожности не импортировать класс Scanner дважды. Делать это когда-то было бы достаточно

+0

Это не «предосторожность» для импорта только один раз, просто очистка. –

0

Я понял вашу интенцию и ниже два возможных пути реализации вашей мысли:

Я вижу, что вы даете значения вручную userWeight [0] = 0; Если вы хотите дать вручную, я предлагаю не идти со сканером, как показано ниже.

public static void main(String[] args) { 
    int[] userWeight={0, 5, 6,7,9}; 
     System.out.println("Weights are" +userWeight);//as you are giving values. 
} 

Если интенция, чтобы получить значение во время выполнения или пользователя, пожалуйста, следуйте ниже подход

public static void main(String[] args) { 
     Scanner sc=new Scanner(System.in); 
     System.out.println("This is runtime and you need to enter input"); 

     int[] userWeight = new int[5]; 

      for (int i= 0; i < userWeight.length; i++) { 
       userWeight[i] = sc.nextInt(); 
       System.out.println(userWeight[i]); 
      } 
     } 

PS:

Я видел, как вы используете импорт Util пакеты за два раза, вместо этого вы можете импортировать все сразу как import java.util. *;

Также вы пытаетесь вернуться. Обратите внимание, что для недействительных методов не требуется возвращать значения. VOID ничего не делает взамен.