Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2014, 12:22   #1
DoomNight
Пользователь
 
Регистрация: 05.11.2014
Сообщений: 13
По умолчанию Return из Switch

Всем доброго времени суток, сразу извиняюсь, если не там размещаю тему. В процессе изучения языка возник вопрос. Можно ли из конструкции switch возвращать значение с помощью return? Ситуация такова, что когда я использую return в case пишет вот что "unreachable statement". Пришлось извращаться, создав промежуточную переменную, в которую я ложу нужное значение в case, а потом за пределами switch возвращаю эту переменную. Вот пример кода:
Код:
double OutProp(int n){
		double trasser=0;
		switch(n){
		case 0:
			trasser=width;	 
		break;
		case 1: 
			trasser=height;
		break;
		case 2: 
			trasser=depth;
		break;
		case 3:	
			trasser=weight; 
		break;
		} 
		return trasser;
	}

Последний раз редактировалось DoomNight; 05.11.2014 в 12:27.
DoomNight вне форума Ответить с цитированием
Старый 05.11.2014, 12:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Т.е.
Код:
double OutProp(int n){
		double trasser=0;
		switch(n){
		case 0:
			return width;	 
		break;
...
		} 
...
	}
Дает эту ошибку (или точнее предупреждение)?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2014, 13:19   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

default забыли
Человек_Борща вне форума Ответить с цитированием
Старый 05.11.2014, 14:06   #4
DoomNight
Пользователь
 
Регистрация: 05.11.2014
Сообщений: 13
По умолчанию

Да, такой код выдаёт ошибку.
DoomNight вне форума Ответить с цитированием
Старый 05.11.2014, 14:55   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

не помню точно, там вроде break тогда не нужен после return.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.11.2014, 15:45   #6
DoomNight
Пользователь
 
Регистрация: 05.11.2014
Сообщений: 13
По умолчанию

В общем то да, с break работать не хочет, плюс ко всему необходим так же раздел default. Вот пример рабочего кода(чисто экспериментального), может пригодится:
Код:
class TestA{
	public static void main(String args[]){
		A obj = new A();
		System.out.println(obj.test());
	}
}
class A{
	double test(){
	int a=0;
	switch(a){
		case 0: 
			return 1;
		default: 
			return 0;
			
	}
	}
}
Сегодня впервые сюда зашел, чувствую останусь на долго, хорошие люди и дельные советы.
Всем спасибо)

Последний раз редактировалось DoomNight; 05.11.2014 в 15:48.
DoomNight вне форума Ответить с цитированием
Старый 05.11.2014, 16:15   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Интересно а зачем тут Свитч нужен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2014, 17:05   #8
DoomNight
Пользователь
 
Регистрация: 05.11.2014
Сообщений: 13
По умолчанию

Концепция такова: имеется класс со скрытыми переменными, дабы избежать воздействия на них за пределами класса. В связи с этим обратиться к ним напрямую нельзя, например мы не можем написать имякласса.имяпеременной. Чтобы можно было вытягивать из класса конкретные поля(переменные) был задуман метод, который в качестве параметров принимал бы значение от 0 до 3, так как полей 4. А возвращал соответствующее номеру поле. Это на случай если будет необходимость исспользовать конкретные поля.
DoomNight вне форума Ответить с цитированием
Старый 05.11.2014, 17:11   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
дабы избежать воздействия на них за пределами класса.
Опа! А что в Джаве геттеры сделать нельзя? Зачем такие сложности?
И кстати раз уж по номерам хранишь, так может лучше сделать приватный массив?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2014, 17:20   #10
DoomNight
Пользователь
 
Регистрация: 05.11.2014
Сообщений: 13
По умолчанию

Я только изучаю данный язык, о чём сведетельствует вот это предложение "В процессе изучения языка возник вопрос.". А моя методика изучения такова, что я последовательно изучаю концепции языка, попутно ставлю перед собой небольшие задачи и с помощью изученого их решаю. Когда я дойду до той темы которая позволит мне более рационально решить данную задачу, я так и сделаю)

И вообще, я просто хотел поэксперементировать именно со свичом, это не реальный проект, если бы я писал что-то серьёзное, для дальнейшего использования, то более детально обдумал бы структуру программы. А так просто эксперементировал и наткнулся на то что return не работал.

Последний раз редактировалось Stilet; 05.11.2014 в 18:21.
DoomNight вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c++ while return BaTpyXaaa Общие вопросы C/C++ 3 30.11.2013 03:57
return ZoomHz Общие вопросы C/C++ 3 10.07.2011 21:02
java [return] monogramm Общие вопросы по Java, Java SE, Kotlin 1 27.05.2011 10:49
Вопрос по return fs444 Общие вопросы C/C++ 9 20.03.2010 15:07
return и echo dedyshka PHP 5 31.01.2010 16:58