Совсем новичок в Java
, изучаю конструкторы и классы.
Как-бы встретилась проблема с выводом при "перезапуске" программы.
package com.company;
import com.sun.source.tree.Tree;
import java.util.Scanner;
public class Main {
public static class Trees {
int LengthRadix;
int LengthToHeight;
int Age;
String Name;
static int numbers;
int Number;
static void setNumbers (Trees obj){
obj.Number = ++Trees.numbers;
}
}
public static void main(String[] args) {
main();
}
private static void main(){
int[] Treearrayint = new int[64];
String[] Treearraystr = new String[16];
int a2 = 0;
int i = 0, i2 = 0;
boolean m = true;
Trees AppleTree;
AppleTree = new Trees();
Trees.setNumbers(AppleTree);
AppleTree.LengthRadix = 2;
AppleTree.LengthToHeight = 10;
AppleTree.Age = 2;
AppleTree.Name = "Apple";
Trees LipaTree = new Trees();
Trees.setNumbers(LipaTree);
LipaTree.LengthToHeight = 7;
LipaTree.LengthRadix = 2;
LipaTree.Age = 2;
LipaTree.Name = "Lipa";
System.out.println("Дерево: "+ AppleTree.Name + ", имеет возраст "+ AppleTree.Age +" лет(годов),высоту "+AppleTree.LengthToHeight +
" м и ширину "+ AppleTree.LengthRadix+ " м");
System.out.println("Дерево: "+ LipaTree.Name + ", имеет возраст "+ LipaTree.Age +" лет(годов),высоту "+LipaTree.LengthToHeight +
" м и ширину "+ LipaTree.LengthRadix+" м");
System.out.println("Хотите добавить информацию о своём дереве?");
System.out.println("1)Да 2)Нет");
int vvod;
Scanner input = new Scanner(System.in);
vvod = input.nextInt();
switch (vvod) {
case 1:{
break;
}
case 2: {
System.exit(1);
break;
}
default:{
System.out.println("Вы не ввели требуемую цифру!");
System.exit(1);
break;
}
}
Trees NewTree;
NewTree = new Trees();
Trees.setNumbers(NewTree);
int b , c , d;
System.out.println("Введите имя дерева.");
String a = input.next();
System.out.println("Введите возраст дерева.");
b = input.nextInt();
System.out.println("Введите высоту дерева.");
c = input.nextInt();
System.out.println("Введите ширину дерева.");
d = input.nextInt();
NewTree.Name = a;
NewTree.Age = b;
NewTree.LengthRadix = d;
NewTree.LengthToHeight = c;
/*System.out.println("Дерево: "+ NewTree.Name + ", имеет возраст "+ NewTree.Age +" лет(годов),высоту "+NewTree.LengthToHeight +
" м и ширину "+ NewTree.LengthRadix+ " м");*/
for (int i1 = 0; i1 < 1; i1++) {
Treearraystr[i2] = a;
i2++;
Treearrayint[i] = b;
i++;
Treearrayint[i] = c;
i++;
Treearrayint[i] = d;
i++;
System.out.println("Информация о дереве успешно добавлена!");
a2++;
}
for(;m == true;){
System.out.println("Ваши добавленные информация о деревьях: ");
for(int a1 = 0;a1 < a2;a1++) {
System.out.println("Дерево: " + Treearraystr[i2 - 1] +
", имеет возраст " + Treearrayint[i - 3] +
" лет(годов),высоту " + Treearrayint[i - 2] +
" м и ширину " + Treearrayint[i - 1] + " м");
}
System.out.println("-=_____________________________________________________________=-");
m = false;
}
System.out.println("Желайте ли вы, выйти из программы?");
System.out.println("1)Да 2)Нет");
vvod = input.nextInt();
switch (vvod) {
case 1: {
main();
break;
}
case 2: {
System.exit(1);
break;
}
default: {
System.out.println("Вы не ввели требуемую цифру!");
System.exit(1);
break;
}
}
}
}
При выводе информации о дереве значениеa2 = 1
, но после "перезапуска" по воле пользователя переменная заменяется int a2 = 0;
, тем самым не может выдать информацию о 1-ом, который был введён до перезапуска.
Как можно это обойти подобие "инициализации" или исправить это?
Программа запускается начиная с метода main, где в одной из первых строчек в переменную a2 кладут 0. Что именно здесь работает не так, как вы ожидали? Переменные не сохраняют свои состояния после остановки программы. Каждый раз все происходит заново, с нуля. Если хотите, чтобы состояние а2 сохранилось и использовалось в последующих запусках программы - записывайте его в файл в конце и считывайте из файла в начале
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Мне нужно вывести первый символ и проверить, чем он являетсяГде-то подсмотрел, что можно использовать str
Есть одна кнопка в вконтакте, как сделать её зацикленное нажатие с неким интервалом через Console в Ctrl+Shift+C? Раньше находил такой для добавления...
Всем доброго времени суток! Пилил я значит веб-страничку простенькую с использованием p5js
В коде ниже представлена одна из множества однотипных функцийНужно объединить их в одну и сделать задаваемым как параметр номер функции...