If -> Case (Java)

Для тех, кто хочет сделать мир лучше.
Ответить
Сообщение
Автор
Аватара пользователя
Dimak666
Полковник
Полковник
Сообщения: 1286
Зарегистрирован: 11.10.2007
Откуда: Тардис
Благодарил (а): 44 раза
Поблагодарили: 255 раз
Контактная информация:

#1 Сообщение 15.11.2010, 14:23

Используя if.

Код: Выделить всё

int num;
..... //** кучу рандомного кода.
if (num==1)
{
    System.out.println("One");
}
if (num==2)
{
    System.out.println("Two");
} 
if (num>2)
{
   System.out.println("Number bigger than 2");
}
else
    System.out.println("Some other number")
а теперь используя switch/case

Код: Выделить всё

int num;
.....  //** кучу рандомного кода.
switch (num)
{
   case 1: System.out.println("One");
   case 2: System.out.println("Two");
   case ???: System.out.println("Number bigger than 2");
   default: System.out.println("Some other number")
}
Надеюсь понятно, мне надо условие if (num>2), написать используя switch/case
Последний раз редактировалось Dimak666 16.11.2010, 08:23, всего редактировалось 1 раз.

Аватара пользователя
olegv11
Полковник
Полковник
Сообщения: 2329
Зарегистрирован: 16.03.2007
Откуда: От мамы

#2 Сообщение 15.11.2010, 17:36

Последний раз редактировалось olegv11 15.11.2010, 17:36, всего редактировалось 1 раз.
Изображение
Garry Newman писал(а):Atheists don't hate religious people, they just think they're stupid.

Аватара пользователя
Dimak666
Полковник
Полковник
Сообщения: 1286
Зарегистрирован: 11.10.2007
Откуда: Тардис
Благодарил (а): 44 раза
Поблагодарили: 255 раз
Контактная информация:

#3 Сообщение 15.11.2010, 17:40

olegv11
Считаешь себя умнее всех? Я это видел, это не то

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#4 Сообщение 15.11.2010, 17:51

Dimak666
То есть сие не подойдёт, так?

Код: Выделить всё

if (bla()==1)
{
}
else if (bla()==2)
{
}
else if (bla()==3)
{
}

Аватара пользователя
Dimak666
Полковник
Полковник
Сообщения: 1286
Зарегистрирован: 11.10.2007
Откуда: Тардис
Благодарил (а): 44 раза
Поблагодарили: 255 раз
Контактная информация:

#5 Сообщение 15.11.2010, 20:14

$t@t!c_V()1D
if'ом я умею пользоваться, но мне надо if заменить case'ом

Аватара пользователя
olegv11
Полковник
Полковник
Сообщения: 2329
Зарегистрирован: 16.03.2007
Откуда: От мамы

#6 Сообщение 15.11.2010, 20:57

Dimak666

Код: Выделить всё

case ((x>6) && (x<10): code_block_1;
чем не годится?
Изображение
Garry Newman писал(а):Atheists don't hate religious people, they just think they're stupid.

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#7 Сообщение 15.11.2010, 21:28

Dimak666
А..теперь дошло %)
Ну, я вот тут тоже погуглил ( http://www.ozoneasylum.com/27696 )...Кажись, что на Яве, что на Си (синтаксис схожий, как ни крути) подобного сделать нельзя. Вот на Паскале/Дельфине ещё да, а тут...ну, по крайней мере, может я не знаю.

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#8 Сообщение 15.11.2010, 21:30

Было:

Код: Выделить всё

if ((x>6) && (x<10))
{
   some;
   code;
   here;
}
Стало:

Код: Выделить всё

switch ((x>6) && (x<10))
{
case true:
   some;
   code;
   here;
   break;
}
Добавлено спустя 21 секунду:
Но скорее всего ты плохо объяснил задачу.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
Dimak666
Полковник
Полковник
Сообщения: 1286
Зарегистрирован: 11.10.2007
Откуда: Тардис
Благодарил (а): 44 раза
Поблагодарили: 255 раз
Контактная информация:

#9 Сообщение 15.11.2010, 21:45

NiGHt-LEshiY
смотри, написанно используя if

Код: Выделить всё

int num;
..... //** кучу рандомного кода.
if (num==1)
{
    System.out.println("One");
}
if (num==2)
{
    System.out.println("Two");
} 
if (num>2)
{
   System.out.println("Number bigger than 2");
}
else
    System.out.println("Some other number")
а теперь используя switch/case

Код: Выделить всё

int num;
.....  //** кучу рандомного кода.
switch (num)
{
   case 1: System.out.println("One");
   case 2: System.out.println("Two");
   case ???: System.out.println("Number bigger than 2");
   default: System.out.println("Some other number")
}
Надеюсь понятно, мне надо условие if (num>2), написать используя switch/case

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#10 Сообщение 15.11.2010, 21:49

Код: Выделить всё

switch (num)
{
   case 1: System.out.println("One");
   case 2: System.out.println("Two");
   default:
      switch (num>2)
      {
         case true:
            some.code;
         default:
            System.out.println("Some other number");
      }
}
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
Dimak666
Полковник
Полковник
Сообщения: 1286
Зарегистрирован: 11.10.2007
Откуда: Тардис
Благодарил (а): 44 раза
Поблагодарили: 255 раз
Контактная информация:

#11 Сообщение 16.11.2010, 08:20

Изображение
Хорошо что в университете си предподают.

Аватара пользователя
olegv11
Полковник
Полковник
Сообщения: 2329
Зарегистрирован: 16.03.2007
Откуда: От мамы

#12 Сообщение 16.11.2010, 17:26

(sah1>60)==true (или 1, что там на яве)
Изображение
Garry Newman писал(а):Atheists don't hate religious people, they just think they're stupid.

Ответить