powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Задачи на числа. Решение. Покритикуйте. (часть #1)
25 сообщений из 117, страница 1 из 5
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707153
Denis_m1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ввести с консоли n целых чисел и поместить их в массив. На консоль вывести:
1. Четные и нечетные числа.
2. Наибольшее и наименьшее число.
3. Числа, которые делятся на 3 или на 9.
4. Числа, которые делятся на 5 и на 7.
5. Элементы, расположенные методом пузырька по убыванию модулей.
6. Все трехзначные числа, в десятичной записи которых нет одинаковых цифр.
7. Наибольший общий делитель и наименьшее общее кратное этих чисел.
8. Простые числа.
9. Отсортированные числа в порядке возрастания и убывания.
10. Числа в порядке убывания частоты встречаемости чисел.
11. “Счастливые” числа.
12. Числа Фибоначчи: f0 = f1 = 1, f (n) = f (n–1) + f (n–2).
13. Числа-палиндромы, значения которых в прямом и обратном порядке совпадают.
14. Элементы, которые равны полусумме соседних эле¬ментов.
15. Период десятичной дроби p = m/n для первых двух целых положительных чисел n и m, расположенных подряд.
16. Построить треугольник Паскаля для первого положительного числа.

Привет, решение данных заданий на Java - ниже. Покритикуйте .

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
package chapt01.b;

import java.util.*;
import static java.util.Collections.*;

/**
 * Ввести с консоли n целых чисел и поместить их в массив. На консоль вывести:
 * 
 * @author m1st
 */

public class OperationsWithNumbers {
	private static List<Integer> divider(int divider, Integer[] array) {
		List<Integer> divided = new LinkedList<Integer>();
		for (Integer anArray : array) {
			if (anArray % divider == 0)
				divided.add(anArray);
		}
		return divided;
	}

	private static Map revSortByVal(Map<Integer, Integer> map) {
		List<Object> list = new LinkedList<Object>(map.entrySet());
		sort(list, new Comparator() {
			public int compare(Object o1, Object o2) {
				return ((Comparable) ((Map.Entry) (o2)).getValue())
						.compareTo(((Map.Entry) (o1)).getValue());
			}
		});
		Map result = new LinkedHashMap();
		for (Object aList : list) {
			Map.Entry entry = (Map.Entry) aList;
			result.put(entry.getKey(), entry.getValue());
		}
		return result;
	}

	private static List<Integer> bubbleRevSortByMod(Integer[] input) {
		Integer[] nums = input.clone();
		boolean swapped = true;
		int j = 0;
		int tmp;
		while (swapped) {
			swapped = false;
			j++;
			for (int i = 0; i < nums.length - j; i++) {
				if (Math.abs(nums[i]) < Math.abs(nums[i + 1])) {
					tmp = nums[i];
					nums[i] = nums[i + 1];
					nums[i + 1] = tmp;
					swapped = true;
				}
			}
		}
		return Arrays.asList(nums);
	}

	private static long gcd(long a, long b) // Greatest Common Divisor
	{
		while (b > 0) {
			long temp = b;
			b = a % b;
			a = temp;
		}
		return a;
	}

	private static long gcd(Integer[] input) {
		long result = input[0];
		for (int i = 1; i < input.length; i++)
			result = gcd(result, input[i]);
		return result;
	}

	private static long lcm(long a, long b) // Least Common Multiple
	{
		return a * (b / gcd(a, b));
	}

	private static long lcm(Integer[] input) {
		long result = input[0];
		for (int i = 1; i < input.length; i++) {
			if ((input[i] == 0 || input[0] == 0)
					|| (input[i] < 0 || input[0] < 0))
				break;
			result = lcm(result, input[i]);
		}
		return result;
	}

	private static List<Integer> list1 = new LinkedList<Integer>();
	private static List<Integer> list2 = new LinkedList<Integer>();

	public static List<Integer> primeNums(Integer[] input) {
		list1.clear();
		for (Integer anInput : input) {
			if (isPrimeNum(anInput)) {
				list1.add(anInput);
			}
		}
		return list1;
	}

	public static boolean isPrimeNum(int n) {
		boolean prime = true;
		for (long i = 3; i <= Math.sqrt(n); i += 2) {
			if (n % i == 0) {
				prime = false;
				break;
			}
		}
		return (n % 2 != 0 && prime && n > 2) || n == 2;
	}

	private static Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
	private static Map<Integer, Integer> invMap = new TreeMap<Integer, Integer>();

	private static void put(Integer key, Integer value) {
		map.put(key, value);
		invMap.put(value, key);
	}

	private static void buildPascalTriangle(int number, int rows) {
		for (int y = 0; y < rows; y++) {
			int c = number;
			for (int w = 0; w < rows - y; w++) {
				System.out.print("   ");
			}
			for (int x = 0; x <= y; x++) {
				System.out.print("   " + c + " ");
				c = c * (y - x) / (x + 1);
			}
			System.out.println();
		}
	}

	public static void main(String[] args) {
		System.out.print("Сколько целых чисел вы собираетесь ввести? ");
		Scanner in = new Scanner(System.in);
		int size = in.nextInt();
		if (size == 0) {
			System.out.print("Программа завершена.");
			System.exit(0);
		}
		Integer[] numbers = new Integer[size];
		System.out.print("Введите целые числа через пробел "
				+ "и нажмите <Enter>: ");
		for (int i = 0; i < size; i++)
			numbers[i] = in.nextInt();

		// 1. Четные и нечетные числа
		for (int i = 0; i < size; i++) {
			if (numbers[i] % 2 == 0)
				list1.add(numbers[i]);
			else
				list2.add(numbers[i]);
		}
		System.out.println("Чётные числа: " + list1);
		System.out.println("Нечётные числа: " + list2);

		// 2. Наибольшее и наименьшее число.
		List<Integer> listFromArray = Arrays.asList(numbers);
		System.out.println("Наибольшее число: " + max(listFromArray));
		System.out.println("Наименьшее число: " + min(listFromArray));

		// 3. Числа, которые делятся на 3 или на 9.
		System.out.println("Числа, которые делятся на 3: "
				+ divider(3, numbers));
		System.out.println("Числа, которые делятся на 9: "
				+ divider(9, numbers));

		// 4. Числа, которые делятся на 5 и на 7.
		System.out.println("Числа, которые делятся на 5: "
				+ divider(5, numbers));
		System.out.println("Числа, которые делятся на 7: "
				+ divider(7, numbers));

		// 5. Элементы, расположенные методом пузырька по убыванию модулей. //
		System.out.println("Элементы, расположенные методом пузырька "
				+ "по убыванию модулей: " + bubbleRevSortByMod(numbers));

		// 6. Все трехзначные числа, в десятичной записи которых нет одинаковых
		// цифр.
		String num;
		list1.clear();
		for (int i = 0; i < size; i++) {
			num = numbers[i].toString();
			if (num.length() == 3 && num.charAt(0) != num.charAt(1)
					&& num.charAt(1) != num.charAt(2)
					&& num.charAt(0) != num.charAt(2))
				list1.add(numbers[i]);
		}
		System.out.println("Все трехзначные числа, "
				+ "в десятичной записи которых нет одинаковых цифр: " + list1);

		// 7. Наибольший общий делитель и наименьшее общее кратное этих чисел.
		System.out.println("Наибольший общий делитель: " + gcd(numbers));
		System.out.println("Наименьшее общее кратное: " + lcm(numbers));

		// 8. Простые числа.
		System.out.println("Простые числа: " + primeNums(numbers));

		// 9. Отсортированные числа в порядке возрастания и убывания.
		list1.clear();
		list1.addAll(listFromArray);
		sort(list1);
		System.out.println("Отсортированные числа в порядке возрастания: "
				+ list1);
		reverse(list1);
		System.out
				.println("Отсортированные числа в порядке убывания: " + list1);

		// 10. Числа в порядке убывания частоты встречаемости чисел.
		for (Integer i : numbers) {
			put(i, frequency(listFromArray, i));
		}
		System.out.println("Числа в порядке убывания частоты встречаемости "
				+ "чисел <Число=Встречаемость>: " + revSortByVal(map));

		// 11. “Счастливые” числа.
		list1.clear();
		for (int i = 0; i < size; i++) {
			num = numbers[i].toString();
			if (num.length() == 4
					&& num.charAt(0) + num.charAt(1) == num.charAt(2)
							+ num.charAt(3))
				list1.add(numbers[i]);
		}
		System.out.println("“Счастливые” числа (&#931; 1-ой пары чисел "
				+ "= &#931; 2-ой пары): " + list1);

		// 12. Числа Фибоначчи: f0 = f1 = 1, f (n) = f (n–1) + f (n–2).
		list1.clear();
		for (int i = 2; i < size - 2; i++) {
			if (numbers.length < 3)
				break;
			else if (numbers[i + 2] == numbers[i] + numbers[i + 1])
				list1.add(numbers[i]);
		}
		System.out.println("Числа Фибоначчи: " + list1);

		// 13. Числа-палиндромы, значения которых в прямом и обратном порядке
		// совпадают.
		List<StringBuilder> palindromes = new LinkedList<StringBuilder>();
		for (int i = 0; i < size; i++) {
			StringBuilder s = new StringBuilder(numbers[i].toString());
			if (s.toString().equals(s.reverse().toString()))
				palindromes.add(s);
		}
		System.out.println("Числа-палиндромы: " + palindromes);

		// 14. Элементы, которые равны полусумме соседних элементов.
		list1.clear();
		Integer[] int2;
		int2 = numbers.clone();
		for (int i = 1; i < int2.length - 1; i++) {
			if (int2.length < 3)
				break;
			if (int2[i] == (int2[i - 1] + int2[i + 1]) / 2)
				list1.add(int2[i]);
		}
		System.out.println("Элементы, которые равны полусумме соседних "
				+ "элементов: " + list1);

		/**
		 * 15. Период десятичной дроби p = m/n для первых двух целых
		 * положительных чисел n и m, расположенных подряд.
		 * 
		 * @author RodionGork
		 */
		long p, q, r, l, t, i;
		for (int n = 0; n < size - 1; n++)
			if (numbers.length < 2)
				break;
			else if (numbers[n] >= 0 && numbers[n + 1] >= 0) {
				p = numbers[n];
				q = numbers[n + 1];
				r = p;
				for (i = 0; i < q; i++)
					r = (r * 10) % q;
				t = r;
				l = 0;
				do {
					r = (r * 10) % q;
					l++;
				} while (r != t);
				t = r = p;
				System.out.print("Период десятичной дроби p = m/n для "
						+ "первых двух целых положительных чисел n и m, "
						+ "расположенных подряд: 0.");
				for (i = 0; i < l; i++)
					r = (r * 10) % q;
				for (i = 0; r != t; i++) {
					System.out.print(t * 10 / q);
					r = (r * 10) % q;
					t = (t * 10) % q;
				}
				System.out.print('(');
				for (i = 0; i < l; i++) {
					System.out.print(t * 10 / q);
					t = (t * 10) % q;
				}
				System.out.println(')' + " = " + p + "/" + q);
				break;
			}

		// 16. Построить треугольник Паскаля для первого положительного числа.
		list1.clear();
		for (int u = 0; u < size; u++)
			if (numbers[u] >= 0) {
				list1.add(numbers[u]);
				System.out
						.print("Сколько строк треугольника Паскаля для числа "
								+ list1.get(0) + " отображать? ");
				int rows = in.nextInt();
				buildPascalTriangle(list1.get(0), rows);
			}
	}
}
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707197
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну сам алгоритм я просмотрел через строку, но ничего криминального не заметил. Могу сказать, что в некоторых местах имя переменных и имена методов не совсем логичные или не отражают суть проблемы, например list1, list2, divider() и т.п. Так же разбил бы метод main на части соответствующие выполняемым функциям типа того -

Код: java
1.
2.
3.
4.
5.
6.
main(){
Integer[] sourceNumbers = readInput();
findEvenAndOddNumbers(sourceNumbers);
findMaxMinNumbers(sourceNumbers);
//и т.д.
}



Ну это так, чтоб совсем по-пацански было
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707203
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ну еще тут у тебя косячок -
Код: java
1.
2.
List<Object> list = new LinkedList<Object>(map.entrySet());
		Map result = new LinkedHashMap();


Почему не используются generics? У тебя же всегда там Integer будет.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707206
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С точки зрения лабораторной, если работает, то зачет.
С точки зрения комерческого программирования:
1. В if и for обязательно используйте {}, даже для одной строки. Скобки можно опустить только если тело блока находится в той же строке что и if/for
2. revSortByVal - используйте полноценные английские слова reverseSortingByValue - читается намного лучше.
3. revSortByVal - полный ахтунг в плане генериков. Integer превращается в Object и потом вообще generic типа почему-то пропадает.
4. bubbleRevSortByMod - почему ByMod когда ByAbs на самом деле?
5. gcd, lcm - зачем писать такие именна, чтобы потом объяснять в коментарии? greatestCommonDivisor() и всё. Либо getGCD, если GCD - общепринятое имя в проекте.
6. Русскоязычный текст может потерятся в процессе компиляции.
7. Переменным таким как list1, int2 нужно давать более осмысленые имена. Для long p, q, r, l, t, i;, возможно, тоже.
8. Всё написано в строго процедурном стиле, хотя свой объект на каждую задачу напрашивается. Отсюда и такой разброд в именах переменных.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707210
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и тут в принципе тоже, не то чтобы неправильно, но может привести к ошибке
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public static List<Integer> primeNums(Integer[] input) {
		list1.clear();
		for (Integer anInput : input) {
			if (isPrimeNum(anInput)) {
				list1.add(anInput);
			}
		}
		return list1;
	}



Лучше в каждом методе создавать свой List, а то рискуешь нарваться на неприятности, связанные с побочными эффектами.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707231
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВсё написано в строго процедурном стиле, хотя свой объект на каждую задачу напрашивается.
Я не пурист абсолютного ООП, но мне кажется практичнее создать утилитный класс по подобию java.util.Math, вы не согласны?
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707238
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никЯ не пурист абсолютного ООП, но мне кажется практичнее создать утилитный класс по подобию java.util.Math, вы не согласны?
Проще, но не практичнее.
Здесь единый ввод, обработка данных списком задач и достаточно общий вывод. Можно было унифицировать. Ну и static поубирать везде, кроме утилитных методов.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707242
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Офигеть, сколько букв. Чета хочется убрать.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707287
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczС точки зрения комерческого программирования:
1. В if и for обязательно используйте {}, даже для одной строки. Скобки можно опустить только если тело блока находится в той же строке что и if/for...
Зачем??? Уже сколько сталкиваюсь с этой дилеммой, но ни одна из сторон внятного ответа не дала. На сайте Сана (или АйБиЭма - не помню) встречал рекомендацию не использовать фигурные скобки для одной строки. Так как и ранее не использовал, то это только придало уверенности, что я все-таки делаю правильно. А тут ты ... если бы твой авторитет не был столь высоким, то я бы просто прошел мимо, а так очень интересно услышать мнение - зачем.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707303
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы и divider упростил. Он существует только для того чтоб вернуть список который сушествует
только для того чтобы отработал toString. Так выведете сразу на консоль результат. Незачем
мусорить в куче.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707342
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И зачем LinkedList? Там сгодился-бы обычный ArrayList.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707530
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczесли тело блока находится в той же строке что и if/for
тут трудность в том, что я включаю автоформат...он строки делает.... не особо церемонясь.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707539
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz6. Русскоязычный текст может потерятся в процессе компиляции.??
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707600
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckЗачем??? Уже сколько сталкиваюсь с этой дилеммой, но ни одна из сторон внятного ответа не дала. На сайте Сана (или АйБиЭма - не помню) встречал рекомендацию не использовать фигурные скобки для одной строки. Так как и ранее не использовал, то это только придало уверенности, что я все-таки делаю правильно. А тут ты ... если бы твой авторитет не был столь высоким, то я бы просто прошел мимо, а так очень интересно услышать мнение - зачем.
В связи с тем как в Java принято ставить скобки, то для глаза нет разницы между такими блоками.
Код: java
1.
2.
3.
if(a == b || c == d || anotherLongObject.isInCondition()){
    doSomething();
    doSomethingElse();        


Код: java
1.
2.
3.
if(a == b || c == d || anotherLongObject.isInCondition())
    doSomething();
    doSomethingElse();        


Один девелопер не пишет скобку. Второй дописывает строку в тело условия. А она оказывается вне. Такую багу уже раза 3 встречал за последний год в legacy проекте.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707601
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123тут трудность в том, что я включаю автоформат...он строки делает.... не особо церемонясь.
Я всегда пишу скобки. Мне не трудно.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707602
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Blazkowicz6. Русскоязычный текст может потерятся в процессе компиляции.??
IDE сохраняет в одной кодировке. Компилятор работает в другой. Зачастую они совпадают. Но могут и не совпасть.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707612
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ связи с тем как в Java принято ставить скобки, то для глаза нет разницы между такими блоками.
А еще беда если проект на нескольких языках - в одних есть скобки, в других нет, и такая бага чаще вылавливается(точнее происходит а потом вылавливается)
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707613
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczIDE сохраняет в одной кодировке. Компилятор работает в другой
я так понял, если компилить во внешнем компиляторе без ide.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707615
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выходит, что скобки - "если кто-то невнимательный".
OK
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707616
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123выходит, что скобки - "если кто-то невнимательный".
OK

Это как в HTML не закрывать теги
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707623
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,
не совсем:
- там можно не закрывать (парсер допускает ошибки)
- тут чисто вопрос корпоративной политики. Как внутри решили - так и будет.
Технических причин ставить скобки (begin ...end) я не увидел.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707626
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Технических причин ставить скобки (begin ...end) я не увидел.
А технические причины вообще разделять текст на строки, а не писать весь код в одну строку, видишь?
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707630
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonPetro123Технических причин ставить скобки (begin ...end) я не увидел.
А технические причины вообще разделять текст на строки, а не писать весь код в одну строку, видишь?
а у нас так и принято :)
if aaaa else bbbbb
в строго оговорённых случаях, без маразма.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707640
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Edd.Dragonпропущено...

А технические причины вообще разделять текст на строки, а не писать весь код в одну строку, видишь?
а у нас так и принято :)
if aaaa else bbbbb
в строго оговорённых случаях, без маразма.
Вот в том то и дело. Что компилятору ни твои лишние пробелы, ни переводы строки не нужны. Но код ты ж не только для компилятора пишешь, удовлетворяя техническим требованиям, но и для чтения, удовлетворяя человеческим требованиям.

Никто не ищет причину, почему нельзя писать 10 if-ов в одну строку. И таки можно - на здоровье.

Тут то же самое. Можно не обрамлять. Но сосбтвенно какая разница, одну строку ты опускаешь под if или 10? Глаз привык видеть либо if в одну строку, либо if со скобками. Мозг привык, при необходимости, добавлять новых строк под уже имеющиеся. Вот и чудесно. Повод поставить скобки есть хоть какой-то. А не ставить - по большому счету повода нет.
...
Рейтинг: 0 / 0
Задачи на числа. Решение. Покритикуйте. (часть #1)
    #37707653
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.Dragon Глаз привык видеть либо if в одну строку, либо if со скобками.
мммм. У кого привык?
Я не спорю, я из Delphi и С++ пришёл.
Там все большинство аккуратных пишут
Код: java
1.
2.
3.
4.
5.
6.
7.
if ddd then
begin
  cccc;
  dddd;
end
else
  kkkk;


Кроме того, я в нескольких фирмах видел свои правила скобок.
В Java многое по другому. Это я в курсе.
авторМозг привык, при необходимости, добавлять новых строк под уже имеющиеся
Да, мностроковость кода - фирменная черта Java.
...
Рейтинг: 0 / 0
25 сообщений из 117, страница 1 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Задачи на числа. Решение. Покритикуйте. (часть #1)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]