2014-07-15 4 views
1

Итак, я нахожусь в классе intro для Java. Я пытаюсь написать свою первую программу. Это простая программа, которая запрашивает число (X), которое равно количеству раундов, которые должны быть завершены. Затем вы запускаете цикл while, который добавляет общий балл до тех пор, пока не будет завершено X раундов. Учебник действительно не отвечает на мой вопрос. Я объявляю 3 целых числа. Я объявляю их в основном методе или внутри цикла while. Мы еще не начали использовать Java-редактор, поэтому я не уверен, как это проверить. Он хочет, чтобы мы выписали код, но я не уверен, где объявить эти целые числа и как он должен быть правильно написан. Любая помощь будет большой, спасибо!Объявление типа данных переменной в java

public class Question2 
{ 
    public static void main (String [] args) 
    { 
     Keyboard kbd; 
     Kbd = new keyboard(); 
     int n, tot, x; 
     System.out.println(“How many?”); 
     x = kbd.readInt(); 
    } 
    while (n < x) 
    { 
     System.out.println(“Enter a score”); 
     s = kbd.readInt(); 
     tot = (tot + s); 
     n = (n + 1); 
    } 
} 
+2

Во-первых, ваш 'while' петля должна существовать внутри фактического метода, а не только в случайном месте в объявлении класса. –

+1

это компиляция? – Sanjeev

+0

Вам нужно понять «переменный объем». (Посмотрите). Переменные Java могут представлять собой статическую область, область экземпляра, область действия метода или область блока (хотя разница между методом и блоком невелика). В общем случае вы должны использовать «самое близкое» определение, которое оставляет вашу переменную «видимой» ко всем частям кода, которые могут потребовать ссылки на нее. –

ответ

0

Я бы организовать код так:

public class Question2 { 
    int n, tot, x; //declaring variables 
    public Question2() //Class constructor { 
    //define the class here (i.e., initialize variables(x = whatever), and write the 
    // while loop 
    } 
    public static void main(String[] args) { 
     Question2 q2 = new Question2() //Creates an instance of the class to compile 
    } 
} 
+0

Спасибо за вашу помощь всем! – hitztp

1

Вы можете сделать это во многих отношениях в простой программе вы можете объявить Int s который является один отсутствующий заявление в коде вы вывесили вместе с другими Int (п, карапуз и x)

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

1

прежде всего, вы, вероятно, хотите, чтобы ваш цикл в то время как внутри вашего метода main

public static void main (String [] args) 
{ 
    //other stuff 
    while (n < x) 
    { 
     //content 
    } 
} 

Во-вторых, вы должны объявлять переменные в зависимости от того или не нужно их упорствовать через итерации цикла.

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

  • Если вы собираетесь выбросить значение после каждой итерации цикла, тогда объявите его внутри цикла while.

В вашем случае, это выглядит как tot и n должен быть объявлен вне цикла, в то время как s может быть объявлена ​​внутри цикла

1

Вы должны узнать о объеме в объектно-ориентированном программировании. Концепция области допускает или ограничивает доступ к переменным в зависимости от того, где и как они объявлены. См. this article об объявлении переменных в Java. Вероятно, вам также следует ознакомиться с "Hello World" application, который предоставляет Oracle.

В принципе, класс Java будет выглядеть примерно так:

public class MyClass 
{ 
    ...public or private variables accessible from any of the code below go here... 
    public static void main(String[] args) { 
     ...declare variables only accessible by the main method here... 
     ...do things here... 
    } 

    ...declare other methods here... 
    ...private methods can only be called by code in this class... 
    ...public methods can be used by external code that uses this class... 
    public int Foo() 
    { 
     ...declare some variables only accessible by Foo() code here... 
     ...do some stuff... 
    } 
    private boolean Bar() 
    { 
     ...declare some variables only accessible by Bar() code here... 
     ...do some stuff... 
    } 
} 

Вы не можете просто бросить время цикла в нидерландах, как это. Она должна идти в основном методом или другим способом, который вы создаете, может быть, один под названием:

public int CountScores(int numTimes) 
{ 
    ...do some stuff...not sure exactly what you're trying to do 
} 

Я также, вероятно, использовать BufferedReader и InputStreamReader вместо клавиатуры. См. this example.

+0

Несомненно @hitztp ... посчитайте другой ответ как ответ, хотя я дал кучу ссылок и, безусловно, самое подробное объяснение. Я вижу, как это ... – jreancsu

1

Вот пример цикла while. Обратите внимание, где объявлена ​​переменная int. Проблема не совсем такая, как ваша, но концепции схожи.

public class foo { 
    public static void main(String[] args) { 
     int myInt = 7; 
     boolean result = true; 
     if (result == true) 
      do 
       System.out.println(myInt) ; 
     while (myInt > 10); 
    } 
} 
Смежные вопросы