Java. Массивы |
Решение домашнего задания из статьи Синтаксис Java. Циклы
File,NewProject,Loop src,New,JavaClass,Loop
public class Loop {
public static void main(String[] args) {
for (int i = 100; i <= 1000; i++) {
if (i % 2 == 1 && i % 5 == 0) {
System.out.println(i);
}} }}
Run!
Массивы
Массивы - это группа однотипных переменных.
Если вспомнить пример про переменные, что переменная это своего рода коробочка, которая может хранить одно значение того типа для которого эта коробочка предназначена, то массив - это ящик для хранения таких коробочек строго определённого типа и размера.
Для того что бы создать массив используется следующая конструкция: сначала пишется тип[] имяМассива = new тип[размер массива];
Создадим массив который будет хранить количество дней в каждом месяце:
int[] daysinMonth = new int[12];
Если в массив хотим положить какое то значение. то нужно обратиться к ячейке данного массива по её индексу: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
То есть январь [0], февраль [1], март [2] итд.
Для того что бы в ячейку для января положить значение 31 пишем:
daysinMonth[0] = 31;
IDE: Newproject FirstArray,Create New Class FirsArray
public class FirstArray {
public static void main(String[] args) {
int [] daysInMonth = new int[12];
}
}
Индексация с [0]
public class FirstArray {
public static void main(String[] args) {
int [] daysInMonth = new int[12];
daysInMonth [0] = 31;
daysInMonth [1] = 28;
daysInMonth [2] = 31;
daysInMonth [3] = 30;
daysInMonth [4] = 31;
daysInMonth [5] = 30;
daysInMonth [6] = 31;
daysInMonth [7] = 31;
daysInMonth [8] = 30;
daysInMonth [9] = 31;
daysInMonth [10] = 30;
daysInMonth [11] = 31;
}
}
в конце последнего элемента будет индекс - длинна массива -1
Для того что бы вывести какое ни будь значение, используется тот же синтаксис. Выведем кол-во дней в марте.
public class FirstArray {
public static void main(String[] args) {
int [] daysInMonth = new int[12];
daysInMonth [0] = 31;
daysInMonth [1] = 28;
daysInMonth [2] = 31;
daysInMonth [3] = 30;
daysInMonth [4] = 31;
daysInMonth [5] = 30;
daysInMonth [6] = 31;
daysInMonth [7] = 31;
daysInMonth [8] = 30;
daysInMonth [9] = 31;
daysInMonth [10] = 30;
daysInMonth [11] = 31;
int march = daysInMonth [2];
System.out.println(march);
}
}
Run! 31
Выведем все числа в цикле!
public class FirstArray {
public static void main(String[] args) {
int [] daysInMonth = new int[12];
daysInMonth [0] = 31;
daysInMonth [1] = 28;
daysInMonth [2] = 31;
daysInMonth [3] = 30;
daysInMonth [4] = 31;
daysInMonth [5] = 30;
daysInMonth [6] = 31;
daysInMonth [7] = 31;
daysInMonth [8] = 30;
daysInMonth [9] = 31;
daysInMonth [10] = 30;
daysInMonth [11] = 31;
for (int i = 0; i < 12; i++) {
System.out.println(daysInMonth[i]);
}
}
}
Run! Все значения вывелись.
Исправим, поставим <=
public class FirstArray {
public static void main(String[] args) {
int [] daysInMonth = new int[12];
daysInMonth [0] = 31;
daysInMonth [1] = 28;
daysInMonth [2] = 31;
daysInMonth [3] = 30;
daysInMonth [4] = 31;
daysInMonth [5] = 30;
daysInMonth [6] = 31;
daysInMonth [7] = 31;
daysInMonth [8] = 30;
daysInMonth [9] = 31;
daysInMonth [10] = 30;
daysInMonth [11] = 31;
for (int i = 0; i <= 12; i++) {
System.out.println(daysInMonth[i]);
}
}
}
Run! Error
ArrayIndexOutOfBoundsException: - выход за пределы массива Index 12, общая длинна length 12
Но если общая 12, то последний будет 11. Что бы этого избежать, лучше не указывать конкретное значение, как мы и сделали, вместо этого можно получить св-во массива, которое показывает, сколько в нём элементов.
public class FirstArray {
public static void main(String[] args) {
int [] daysInMonth = new int[12];
daysInMonth [0] = 31;
daysInMonth [1] = 28;
daysInMonth [2] = 31;
daysInMonth [3] = 30;
daysInMonth [4] = 31;
daysInMonth [5] = 30;
daysInMonth [6] = 31;
daysInMonth [7] = 31;
daysInMonth [8] = 30;
daysInMonth [9] = 31;
daysInMonth [10] = 30;
daysInMonth [11] = 31;
for (int i = 0; i < daysInMonth.length; i++) {
System.out.println(daysInMonth[i]);
}
}
}
Run!
public class FirstArray {
public static void main(String[] args) {
int [] daysInMonth = new int[13];
daysInMonth [0] = 31;
daysInMonth [1] = 28;
daysInMonth [2] = 31;
daysInMonth [3] = 30;
daysInMonth [4] = 31;
daysInMonth [5] = 30;
daysInMonth [6] = 31;
daysInMonth [7] = 31;
daysInMonth [8] = 30;
daysInMonth [9] = 31;
daysInMonth [10] = 30;
daysInMonth [11] = 31;
daysInMonth [12] = 31;
for (int i =0; i < daysInMonth.length; i++) {
System.out.println(daysInMonth[i]);
}
}
}
public class FirstArray {
public static void main(String[] args) {
int [] daysInMonth = new int[13];
for (int i =0; i < daysInMonth.length; i++) {
System.out.println(daysInMonth[i]);
}
}
}
public class FirstArray {
public static void main(String[] args) {
int[] nums = new int [100];
for (int i = 0; i < nums.length; i++) {
nums[i] = i * 10;
}
for (int i =0; i < nums.length; i++) {
System.out.println(nums[i]);
}
}
}
for each (для каждого)В данном цикле нельзя изменять массив, т.е присваивать новые значения его элементам
public class FirstArray {
public static void main(String[] args) {
int[] nums = new int [100];
for (int i = 0; i < nums.length; i++) {
nums[i] = i * 10;
}
for (int i : nums) {
System.out.println(i);
}
}
}
public class FirstArray {
public static void main(String[] args) {
int[] nums = new int[100];
for (int i = 0; i < nums.length; i++) {
nums[i] = i * 10;
}
for (int i : nums) {
System.out.println(i);
}
char[] chars = new char[10];
for (char ch : chars) {
System.out.println(ch);
}
}
}
public class FirstArray {
public static void main(String[] args) {
int[] first = new int[900];
for (int i = 0; i < first.length; i++) {
first[i] = i + 100;
}
int[] second = new int[first.length];
for (int i = 0, j = first.length -1; i < first.length; i++, j--){
second[j] = first[i];
}
for (int i : second) {
System.out.println(i);
}
}
}