2016-10-20 2 views
-1

Прежде чем я попытался вставить Array, код возвращал значения indivdual для ввода года, но я бы предпочел, чтобы я мог ввести список, а затем отобразить список, если он является високосным годом , если это не так, следует игнорировать его. Я не использовал массивы с JOptionPane ... на самом деле я никогда не использовал массивы, так как это моя 4-я неделя, использующая java, поэтому я совершенно noobish. но определенно готов принять критику и советы. Я хочу поправляться. Заранее спасибо.Как разрешить несколько входов пользователя в JOptionPane

импорт javax.swing.JOptionPane;

общественного класс SimpleMath {

public static int printLeap(int r, int k){ 
    if((r % 4 == 0) && (r % 100 != 0) || (r % 400 == 0)){ 
    return r; 
    } 
    else if ((r % 4 != 0) && (r % 100 == 0) || (r % 400 != 0)); 
    return k; 
} 


public static void main(String[] args) { 


    while (true) { //while the statement is true (so it continues indefinitely until the break occurs). 

     String year = JOptionPane.showInputDialog("Enter input years to be tested, when done type End"); 
     int year[] = new year[10]; 
     for (int x=0; x<year.length; x++) 
     if ("End".equals(year)){ //if the user types End then the loop will break. it allows a string to be input for an int value 

      break; 
     } { 
       int r = Integer.parseInt(year); 

int k = 0; 
int i = printLeap(r, k); 
if (i == 0) { 
    break; // or System.out.println(""); 
} 
else 

    System.out.println("Leap years entered are: " + i + x);  


} 
} 
} 

}

+0

Я бы рекомендовал начать с основ, а затем перейти к компонентам графического интерфейса. – ChiefTwoPencils

+0

Почему бы просто не принять список лет с запятой и использовать ['String.split (", ")'] (http://docs.oracle.com/javase/7/docs/api/java/lang/String. html # split (java.lang.String)), чтобы создать массив из этого? –

ответ

1

Итак, давайте начнем с некоторыми общими элементами коды обзора:

  1. код не отформатирован хорошо, что делает его трудно читать. Фиксирование отступов имеет большой путь к тому, чтобы сделать его доступным для других.
  2. Метод printLeap принимает параметр, который вы назвали k. Когда вы вызываете свой метод, вы передаете ему значение 0, потому что вы инициализировали k равным 0, и он никогда не изменяется. Поэтому это заставляет меня спросить - почему параметр k, если он никогда не меняется?
  3. У вас есть синтаксические ошибки в коде. Эта строка: int year[] = new year[10]; неверна - она ​​должна быть написана int[] year = new int[10];, но когда она исправлена, она создает совершенно новую проблему, которая является повторяющимися переменными. Массив вы объявили конфликты с выше String: String year = JOptionPane.showInputDialog(...);
  4. Позже в коде вы пытаетесь разобрать year как целое число, которое вы не можете сделать, потому что Integer.parseInt(...) принимает String в качестве параметра не является массивом.
  5. Имена переменных слишком короткие и не имеют значения. Переменные с именами одного символа, такие как r, k, i в большинстве ситуаций не очень хорошая идея. В общем, единственный раз, когда считается приемлемым использовать одно имя символа для переменной, находится внутри определения цикла for, например: for(int i=0; i<10; i++), потому что это такой общий шаблон.

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

Так я помогу вам начать работу, предоставляя следующий код:

//Accept input from the user - a single String containing multiple years separated by commas. 
String input = JOptionPane.showInputDialog("Enter years to be tested (comma separated): "); 
//Split the String by commas and store the resulting individual years in an array 
String[] yearArray = input.split(","); 

//Process each year in the array 
for(String year: yearArray){ 
    int intYear = Integer.parseInt(year); 
    System.out.println("Here's the integer value: " + intYear); 
    //Do more logic here... 
} 

Надеется, что это помогает!

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