2015-06-23 2 views
2

У меня есть 3 ошибки, которые я не могу исправить с предоставленным мной низким уровнем мастерства.Я не могу понять эти 3 связанные ошибки

Я просто пытаюсь ввести цифры продаж за год, который работает нормально, но я пытаюсь суммировать продажи ниже результата и получать ошибки.

C:\Users\Steven\Documents\assignment2.java:21: error: '.class' expected
System.out.println(int counter + "\t\t\t\t" + sales[counter]);

C:\Users\Steven\Documents\assignment2.java:21: error: not a statement
System.out.println(int counter + "\t\t\t\t" + sales[counter]);

C:\Users\Steven\Documents\assignment2.java:21: error: ';' expected
System.out.println(int counter + "\t\t\t\t" + sales[counter]);

Код:

import java.util.Scanner; 

public class assignment2 
{ 

    public static void main(String [] args) 
    { 

     Scanner keyboard = new Scanner(System.in); 
     System.out.println("Welcome\n"); 

     System.out.println("Sales Month\t\tSales made"); 
     int sales[]={60,54,62,67,54,67,51,50,62,55,49,70}; 
     int sum=0; 

     for(int counter=0;counter < sales.length;counter++) 
     { 
      sum+=sales [counter]; 

     } 
     System.out.println("The sum of the sales is " +sum); 
     System.out.println(int counter + "\t\t\t\t" + sales[counter]); 

    } 

}

+0

Что вы ожидаете от последнего println? – rghome

+0

@rghome Я думал, что он выведет номер месяца по вертикали, а продажи сделают вывод направо, как формат таблицы. – r0wl4nd

+0

Тогда он должен быть в цикле. – rghome

ответ

3

петли Я думаю, что нужно что-то вроде этого:

import java.util.Scanner; 
    public class assignment2 { 

    public static void main(String[] args) { 
     Scanner keyboard = new Scanner(System.in); 
     System.out.println("Welcome\n"); 
     System.out.println("Sales Month\t\tSales made"); 
     int sales[] = { 60, 54, 62, 67, 54, 67, 51, 50, 62, 55, 49, 70 }; 
     int sum = 0; 
     for (int counter = 0; counter < sales.length; counter++) { 
      sum += sales[counter]; 
      System.out.println(counter + "\t\t\t\t" + sales[counter]); 
     } 
     System.out.println("The sum of the sales is " + sum); 
    } 
} 
+0

Наконец, первый, чтобы создать компилируемый код. – Marvin

+0

Это запустило программу @Arpit. Что я делал неправильно на println, где произошли ошибки? – r0wl4nd

+0

Вы пытаетесь получить доступ к переменной 'counter' вне области. Если вы хотите получить доступ к переменной 'counter', объявите ее вне цикла. – Arpit

2

Удалить int из перед counter в int counter + "\t\t\t\t" + sales[counter]

Кроме того, счетчик был объявлен в вашей цикл, но вы используете это вне его. Объявите его перед циклом for или поместите эту строку внутри цикла for.

Я только что скомпилировал и работал с моими изменениями, это работает. Вот результат:

Sales Month    Sales made                                               
0        60                                               
1        54                                               
2        62                                               
3        67                                               
4        54                                               
5        67                                               
6        51                                               
7        50                                               
8        62                                               
9        55                                               
10        49                                               
11        70                                               
The sum of the sales is 701 
+0

Не скомпилируется. – Marvin

+0

Является ли 'counter' еще в сфере действия в этой точке? –

+0

@AlexK. Нет, это не так. – Marvin

1

ваша проблема здесь ..

class assignment2 { 

    public static void main(String[] args) { 

     Scanner keyboard = new Scanner(System.in); 
     System.out.println("Welcome\n"); 

     System.out.println("Sales Month\t\tSales made"); 
     int sales[] = { 60, 54, 62, 67, 54, 67, 51, 50, 62, 55, 49, 70 }; 
     int sum = 0; 
     int counter; 
     for (counter = 0; counter < sales.length; counter++) { 
      sum += sales[counter]; 
      System.out.println("\t\t\t\t" + sales[counter]); 
     } 
     System.out.println("The sum of the sales is " + sum); 

    } 
} 

вы не можете объявить любой переменной в Println заявление просто удалить его и объявить его перед цикл (делают его переменная экземпляра)

+1

Не будет компилироваться, так как' counter' больше не находится в области видимости в этой точке. – Marvin

0

От этой строки

System.out.println(int counter + "\t\t\t\t" + sales[counter]); 

Удалить ИНТ

Типа данных даются только при объявлении переменных, которые вы не можете объявить его there.Infact вы "должны будете удалить всю строку, как счетчик объявляется внутри цикла и это утверждение из стороны loop.after удаление ИНТ положить в внутри для тела

+0

Не будет компилироваться, поскольку 'counter' больше не находится в области видимости в этой точке. – Marvin

+0

Вам придется удалить этот счетчик строк, объявленный внутри цикла, и вы пытаетесь использовать его вне цикла цикла, вы получите ошибку. Посмотрите мой ответ, я его отредактировал –

1

Прежде всего, как @Olivier Poulin указано, удалить int ключевое слово.

Кроме того, переменная counter - это не область. Он определен в цикле for и не существует вне его.

Чтобы избежать этого, просто объявите его за пределами цикла for.

Наконец, счетчик просто эквивалентно sales.length, как всегда увеличивается на 1. Таким образом, ваш код должен выглядеть следующим образом:

int counter; 
for (; counter < sales.length; counter++) { // initialization is done outside the for loop 
      sum += sales[counter]; 
      System.out.println("\t\t\t\t" + sales[counter]); 
     } 

System.out.println(sales.length + "\t\t\t\t" + sales[sales.length - 1]); 

Посмотрите на Java учебник here.

+0

Спасибо за это, этот учебник также хорошо читается. – r0wl4nd

Смежные вопросы