2014-11-16 3 views
-2

Я читаю Sams Teach Yourself Java в течение 24 часов и наткнулся на этот код:основной метод String [] арг вопрос

class NewRoot { 

    public static void main(String[] args) { 
     int number = 100; 
     if (args.length > 0) { 
     number = Integer.parseInt(args[0]); 
     } 
     System.out.println(“The square root of “ 
      + number 
      + " is " 
      + Math.sqrt(number)); 
    } 
} 

Но для того, чтобы код для компиляции, автор вводит 169 в поле Аргументы в

Run> Настройка конфигурации проекта> Настройка

меню (в NetB eans IDE).

Так что мой вопрос: в чем цель конкретной области? 169 означает что-то или это просто случайное число? Жаль, что автор ничего не говорит об этом!

+0

Действительно я сомневаюсь, что кто-то мог бы здесь помочь, потому что мы не знаем, какую книгу вы читаете, и каков контекст этого кода. Возможно, снова перечитайте главу, чтобы узнать, что передает автор, и что делает эта программа. –

+1

+1 для улучшения вашего вопроса. Я взял на себя смелость удалить номера строк и форматировать свой код для упрощения чтения. И добро пожаловать в StackOverflow! –

ответ

1

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

javac ProgramName.java 
java ProgramName <arguments> 

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

Строка «169» имеет значение только для данной программы. Автор пытается продемонстрировать, как программа будет работать с учетом аргумента командной строки, в этом случае он устанавливает ее на произвольное значение «169.» В вашем коде вы берете эту строку и превращаете ее в int.

+0

Значит, если в программе не указано иное, любой вход с консоли регистрируется в массиве аргументов? – HappyCane

+0

Каждый аргумент ПОСЛЕ того, как имя_программы войдет в аргументы String [] и может быть вызвано в программе, используя форму args [i], где i - индекс аргумента, к которому вы хотели бы обратиться. Но помните, что все они хранятся в памяти как тип String. – bmcentee148

+0

Также обратите внимание, что args - это просто условное и предпочтительное имя для вашей строки [] аргументов командной строки. ТЕХНИЧЕСКИЙ, вы могли бы назвать это, как хотите. Я НЕ рекомендую это делать, но я чувствую, что знаю, что это дает вам лучшее представление об основном методе. – bmcentee148

1

Число 169 почти наверняка бессмысленно и произвольно; он используется автором просто в качестве примера. Теперь давайте разберем код по очереди, чтобы решить ваши проблемы.

args содержит аргументы командной строки в виде массива строк:

public static void main(String[] args) { 

Автор объявляет переменную типа int и называет его number. Он присваивает начальное значение 100. Это показало бы случайный номер, чтобы продемонстрировать концепцию - общий подход в книгах по программированию.

int number = 100; 

Затем он проверяет, были ли предоставлены аргументы командной строки; если бы, args.length будет больше нуля:

if (args.length > 0) 

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

{ 
    number = Integer.parseInt(args[0]); 
} 

Обратите внимание, что если есть нет аргумента командной строки, numberэто не перезаписаны. Итак, вызовите программу без аргумента командной строки, и она отобразит квадратный корень из 100. Назовите его аргументом 169 (конечно же, еще один номер, выбранный из эфира), и он покажет вам квадратный корень из 169.

Аргументы командной строки будут упакованы в args; ввод от нажатия клавиш и т. д. после запуска программы не будет.

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

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