2014-09-19 2 views
-1

Я хотел бы спросить, как я могу заставить свой код просто получить ввод, а не объявлять его? Вот моя программа. Я хочу ввести разные атомные номера, а не просто «37», как то, что в моем коде. Не обращайте внимания на мои комментарии, это на моем родном языке. Благодаря!Как сделать мой код принимает ввод

public class ElectConfi {  

     public static void main(String s[]) { 

      int atomicNumber = 37; 
      String electronConfiguration = getElectronConfiguration(atomicNumber); 
      System.out.println(electronConfiguration); 
     } 
     public static String getElectronConfiguration(int atomicNumber) { 

      int[] config = new int[20]; //dito nag store ng number of elec. in each of the 20  
      orbitals. 
      String[] orbitals = {"1s^", "2s^", "2p^", "3s^", "3p^", "4s^", "3d^", "4p^", "5s^", 
      "4d^", "5p^", "6s^", "4f^", "5d^", "6p^", "7s^", "5f^", "6d^", "7p^", "8s^"}; 
      //Names of the orbitals 
      String result=""; 
      for(int i=0;i<20;i++) //dito ung i represents the orbital and tapos ung j 
      represents ng electrons 
      { 
        for(int j=0;(getMax(i)>j)&&(atomicNumber>0);j++,atomicNumber--) //if atomic 
        number > 0 and ung orbital ay kaya pa magsupport ng more electrons, add 
        electron to orbital ie increment configuration by 1 
        { 
          config[i]+=1; 
        } 
        if(config[i]!=0)  //d2 nagche-check to prevent it printing empty 
        orbitals 
        result+=orbitals[i]+config[i]+" ";  //orbital name and configuration 
        correspond to each other 
      } 
      return result; 
     } 
     public static int getMax(int x) //returns the number of max. supported electrons by each 
     orbital. for eg. x=0 ie 1s supports 2 electrons 
     { 
      if(x==0||x==1||x==3||x==5||x==8||x==11||x==15||x==19) 
        return 2; 
      else if(x==2||x==4||x==7||x==10||x==14||x==18) 
        return 6; 
      else if(x==6||x==9||x==13||x==17) 
        return 10; 
      else 
        return 14; 
     } 
} 
+0

с помощью сканера для тестирования? – Synoon

ответ

2

Вы можете использовать либо Scanner или BufferedReader и получить пользовательский ввод

Использование Scanner

Scanner scanner = new Scanner(System.in); 
System.out.println("Please input atomic number"); 
int atomicNumber = scanner.nextInt(); 

Использование BufferedReader

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 
int atomicNumber = Integer.parseInt(reader.readLine()); 
+0

Сделал это, но получил ошибки. Вот мои последние коды. http://pastebin.com/g55d7Pp1 – user3604330

+0

Какая ошибка вы получаете? –

0
public static String getElectronConfiguration(int atomicNumber) {} 

Этот метод принимает любое значение int и возвращает String. поэтому вам нужно только указать номер в качестве входного сигнала. В этом методе изменений не требуется.

Как обеспечить различные входы?

Для этого вы можете использовать Scanner.

Scanner scanner = new Scanner(System.in); 
System.out.println("Please input atomic number"); 
int atomicNumber = scanner.nextInt(); 

Позовите ваш метод

String electronConfiguration = getElectronConfiguration(atomicNumber); 

Какие другие способы?

Вы можете определить набор значений для atomicNumber в вашем коде и вы можете запустить те в цикле

+0

Сделал это, но получил ошибки. Вот мои последние коды. pastebin.com/g55d7Pp1 – user3604330

+0

@ пользователь3604330 проверьте это. http://ideone.com/J7GhC9, тот же код. Это не дает никаких ошибок. –

0

Вы можете получить пользовательский ввод от аргумента командной строки:

public static void main(String s[]) { 

     if (s.length == 0) { 
      // Print usage instructions 
     } else { 
      int atomicNumber = Integer.parseInt(s[0]); 
      // rest of program 
     } 
    } 
0

Вы можете получить вход из аргументов командной строки, выполнив ниже:

Scanner scanner = new Scanner(System.in); 
String inputLine = scanner.nextLine(); //get entire line 
//or 
int inputInt= scanner.nextInt();//get an integer 

Проверить java.util.Scaner апи для получения дополнительной информации - http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

Надеюсь, это поможет!

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