21

Re: Чому так? або 100 питань по Java

yarko написав:

Вчора було нарікання на плюси, сьогодні на жабу.
На кого буде завтра?

Ну, нарікання може бути на все, і це нормально, тому що ніщо не ідеальне. От, наприклад, мені C#-овський foreach менше подобається за Java-ський.

22 Востаннє редагувалося Logans (17.10.2014 16:37:13)

Re: Чому так? або 100 питань по Java

Можливо все-таки питання і відповіді будуть по темі? Для оффтопа є інша тема.

Як правильно оформити оператор if з декількома (більше ніж 4-5) виразами?

Ну щось типу в мене є декілька змінних (a, b, c, d, e) і треба перевірити чи вони не пусті.

Типу щось такого
if ((a == null) && (b == null) && (c == null) && (d == null) && (e == null)) {
         ....
} else {
         ....
}

Можливо не правильно написав, але думаю що суть ви зрозуміли.

Як структурно правильно оформити таку умову?

23

Re: Чому так? або 100 питань по Java

Я не зрозумів, в чому питання (а воно явно не в тому, щоб написати && замість & в прикладі).

24

Re: Чому так? або 100 питань по Java

quez написав:

Я не зрозумів, в чому питання (а воно явно не в тому, щоб написати && замість & в прикладі).

Питання в тому, як оформити (щоб можна було нормально прочитати і зрозуміти) оператор if, коли є велика кількість умов.

Ну типу
if ((a == null) && 
    (b == null) && 
    (c == null) && 
    (d == null) &&
    (e == null)) {
         ....
} else {
         ....
}

Або

if ((a == null) && (b == null) && 
    (c == null) && (d == null) &&
    (e == null)) {
         ....
} else {
         ....
}

Можливо якось інакше, щоб було зрозуміло коли хтось буде переглядати цей код.

25 Востаннє редагувалося quez (17.10.2014 16:54:21)

Re: Чому так? або 100 питань по Java

Тут багато невідомих, щоб говорити про конкретний спосіб. Якщо частина змінних можна змістовно назвати, то часто варто так і зробити: завести нову змінну з зрозумілою назвою і перевіряти вже її.

Ваш абстрактний приклад добре читається навіть в один рядок. А в бойових умовах треба керуватись здоровим глуздом. Між другим і третім прикладом я не бачу особливої різниці, хіба що в ситуації, коли ми перевіряємо a і b на рівність нулю, c і d - на нерівність нулю, а e - на null, я б віддав перевагу третьому варіанту. Ну і зважив би на довжину логічних виразів.

Подякували: Logans1

26

Re: Чому так? або 100 питань по Java

Як запустити прогу в окремій, віконній консольці? Ну це типу от в мене є дві проги, і я хочу, аби вони запускались, як прості c#-овські, або c++-ські проги, в консольці.

27 Востаннє редагувалося muroclav (17.10.2014 19:20:15)

Re: Чому так? або 100 питань по Java

http://bit.ly/1pkJSUl
можете знов нарікати на java

28

Re: Чому так? або 100 питань по Java

Загальні поради:
- уважно перевіряйте умови. Ви пишете "перевірити чи вони не пусті", а перевіряєте, чи хоча б одна з них непуста.
- одноманітні формули добре читаються в кілька рядків, вирівняних по однакових елементах;
- складні логічні формули можна замінювати змінними з узагальнювальною назвою;
- ваша програма вже структурна :)
В цілому:

bool somethingGoneWrong = 
       ( a    == null ) ||
       ( bbbc == null ) ||
       ( c    == null ) ||
       ( d    == null ) ||
       ( e1   == null ) ;
if ( somethingGoneWrong ) {
         ....
} else {
         ....
}
Подякували: quez, Logans2

29

Re: Чому так? або 100 питань по Java

muroclav написав:

http://bit.ly/1pkJSUl
можете знов нарікати на java

та я можу зробити простеньке віконце з штукою, в котру будуть виводитись повідомлення :P

30

Re: Чому так? або 100 питань по Java

Або можу просто два cmd запустити, так же мона?

31

Re: Чому так? або 100 питань по Java

Як працювати з JTextArea?
Я ж от створив його, потім встановив йому розміри, менші, за розміри віконця, але коли пишу, то воно розтягується на все вікно, і таке відчуття, що отой setSize взагалі ні за що не відповідає!!!!

import javax.swing.*;
import java.awt.*;

public class Server extends JFrame {

    public Server(String title)
    {
        setTitle(title);
        setSize(400,300);
        setVisible(true);

        JTextArea textArea = new JTextArea();
        textArea.setSize(380,130);
        textArea.setVisible(true);
        textArea.setBackground(Color.cyan);
        add(textArea);
    }

}

32

Re: Чому так? або 100 питань по Java

Прихований текст

Теж була така фігня і теж прийшов до такого висновку. Погуглив, прочитав про кросплатформенність, що встановлювати розмір — це недобре і непотрібно. Розчарувався в житті і покинув.

Там треба погратись з layout’ами, якщо я все правильно пам’ятаю.

Подякували: koala1

33

Re: Чому так? або 100 питань по Java

Спробуйте замість

 JTextArea textArea = new JTextArea();
textArea.setSize(380,130);

Використати наприклад

JTextArea textArea = new JTextArea(4,10);

34 Востаннє редагувалося VTrim (18.10.2014 12:54:09)

Re: Чому так? або 100 питань по Java

Такий ГК буде зручним,якщо треба перевірити на пустоту багато змінних.

$vars = array($a,$b,$c,$d,$e); //массив зі змінними для перевірки
foreach($vars as $value) 
{
if($value != null) { $result[] = false; }
}
if(@in_array(false,$result)) {
echo 'Якщо змінні не пусті';
}
else {
echo 'якщо пусті';
}

35

Re: Чому так? або 100 питань по Java

VTrim написав:

Такий ГК буде зручним,якщо треба перевірити на пустоту багато змінних.

$vars = array($a,$b,$c,$d,$e); //массив зі змінними для перевірки
foreach($vars as $value) 
{
if($value != null) { $result[] = false; }
}
if(@in_array(false,$result)) {
echo 'Якщо змінні не пусті';
}
else {
echo 'якщо пусті';
}

Ви нормальна людина?

Подякували: quez1

36 Востаннє редагувалося quez (18.10.2014 14:04:27)

Re: Чому так? або 100 питань по Java

VTrim написав:

Такий ГК буде зручним,якщо треба перевірити на пустоту багато змінних.

$vars = array($a,$b,$c,$d,$e); //массив зі змінними для перевірки
foreach($vars as $value) 
{
if($value != null) { $result[] = false; }
}
if(@in_array(false,$result)) {
echo 'Якщо змінні не пусті';
}
else {
echo 'якщо пусті';
}

Красень.
Виділив пам’ять на два масиви там, де не потрібно жодного. Провів дві ітерації, де скоріше всього не треба жодної.
Ви не проти, якщо я поміщу цей код в кунсткамеру?

37

Re: Чому так? або 100 питань по Java

FakiNyan написав:
VTrim написав:

Такий ГК буде зручним,якщо треба перевірити на пустоту багато змінних.

$vars = array($a,$b,$c,$d,$e); //массив зі змінними для перевірки
foreach($vars as $value) 
{
if($value != null) { $result[] = false; }
}
if(@in_array(false,$result)) {
echo 'Якщо змінні не пусті';
}
else {
echo 'якщо пусті';
}

Ви нормальна людина?

Прихований текст

на вашому фоні взагалі норм

p/s Дав відповідь на 22й пост.

38 Востаннє редагувалося VTrim (18.10.2014 14:56:07)

Re: Чому так? або 100 питань по Java

quez написав:
VTrim написав:

Такий ГК буде зручним,якщо треба перевірити на пустоту багато змінних.

$vars = array($a,$b,$c,$d,$e); //массив зі змінними для перевірки
foreach($vars as $value) 
{
if($value != null) { $result[] = false; }
}
if(@in_array(false,$result)) {
echo 'Якщо змінні не пусті';
}
else {
echo 'якщо пусті';
}

Красень.
Виділив пам’ять на два масиви там, де не потрібно жодного. Провів дві ітерації, де скоріше всього не треба жодної.
Ви не проти, якщо я поміщу цей код в кунсткамеру?

Я ж вказав на ГК,просто як цікавий варінт. І де там дві ітерації? Один цикл перевірить всі змінні.
p/s Викладайте в кунсткамеру,і не забудьте вказати автора!11 lil

39

Re: Чому так? або 100 питань по Java

in_array по вашому не ітерація?

40

Re: Чому так? або 100 питань по Java

quez написав:

in_array по вашому не ітерація?

Ну, ітерація - це кожен крок в циклі. Хоча в in_array теж іде перебір даних.