Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
1

Ссылка на переменную?

08.02.2018, 09:39. Показов 1964. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача простая , но не знаю как решить , гугление тоже ничего не дало (вроде нужно ref использовать чтоль)

Делаю в VisualStudio 2015 ...


переменная a может принимать значения от 1 до 3


код C#

...


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  if (a == 1)
            {
               c = 100;
            }
 
 
  if (a == 2)
            {
               c = 200;
            }
 
  if (a == 3)
            {
               c = 300;
            }
 
    var result= c/2;

как я понимаю что var result не видит с (не знаю почему)
и нужно чтобы , допустим если с=200 , то result =c/2=200/2


______________________________________

p.s. мне нужно чтобы работало именно так как описано выше, т.е. код ниже мне не походит

код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  if (a == 1)
            {
               c = 100;
                   var result= c/2;
            }
 
 
  if (a == 2)
            {
               c = 200;
                   var result= c/2;
            }
 
  if (a == 3)
            {
               c = 300;
                   var result= c/2;
            }
так как выражение var result= c/2; по факту большое и не хочется его каждый раз копипастить, должен быть для этого случай какой то способ в C#
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2018, 09:39
Ответы с готовыми решениями:

Ссылка на переменную
Здравствуйте. Не могу найти способ создать ссылку на объект/переменную, допустим: есть у объекта...

Ссылка на переменную
Здравствуйте форумчане! Не знаю как точно сформулировать вопрос, примерно так: Допустим есть 2...

Ссылочные типы, ссылка на переменную или на ссылку, что в переменной
Есть код : Expression.CompleteUnpacking(); _definition = Expression; ...

Ссылка на переменную
Я создал функцию A, которая вызывает ф-ю B, которая в свою очередь создает переменную X и...

12
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
08.02.2018, 09:44 2
rar, может так:

C#
1
var result = (a * 100) / 2;
Добавлено через 58 секунд
Или упростить:

C#
1
var result = a * 50;
0
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
08.02.2018, 09:47 3
Лучший ответ Сообщение было отмечено rar как решение

Решение

глобально переменную объявляешь и работаешь с ней после if уже
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int c = 0;
if (a == 1)
            {
               c = 100;
            }
 
 
  if (a == 2)
            {
               c = 200;
            }
 
  if (a == 3)
            {
               c = 300;
            }
 
    var result= c/2;
Добавлено через 2 минуты
а в целом пример слишком простейший для понятия Вашей проблемы
1
4 / 4 / 3
Регистрация: 01.12.2015
Сообщений: 14
08.02.2018, 09:54 4
C#
1
2
3
4
5
6
7
8
9
int c = 0;
int a = Convert.ToInt32(Console.ReadLine());
switch (a)
{
    case 1: c = 100; break;
    case 2: c = 200; break;
    case 3: c = 300; break;
}
var result = c / 2;
1
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
08.02.2018, 10:01  [ТС] 5
SeIZVeIZ

Спасибо !

Работает как надо

а это работает для переменных между классами ? (если верно задаю вопрос...)

Добавлено через 3 минуты
Fannur96

Подскажите, а зачем нужен break в вашем коде? что будет если его не ставить?
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
08.02.2018, 10:02 6
Цитата Сообщение от rar Посмотреть сообщение
что будет если его не ставить?
Ошибка компиляции.
0
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
08.02.2018, 10:03  [ТС] 7
kolorotur , спасибо понял, значит это обязательное условие в данной конструкции..
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
08.02.2018, 10:08 8
Цитата Сообщение от rar Посмотреть сообщение
значит это обязательное условие в данной конструкции
Нет, не обязательное.
Обязательно, чтобы каждый блок case либо выходил из блока switch (это и делает ключевое слово break), либо переходил на другой блок case, либо был пустым и "проваливался" в следующий блок case.
Варианты, где скомпилируется и без break:
C#
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
switch (a)
{
    case 1: c = 100; break;
    case 2: c = 200; break;
    case 3: return 300; // Если метод имеет возвращаемое значение
}
 
switch (a)
{
    case 1: c = 100; break;
    case 2: goto case 1;  // Переход на другой блок
    case 3: c = 300; break;
}
 
switch (a)
{
    // Проваливание
    case 1:
    case 2:
    case 3: c = 300; break;
}
 
switch (a)
{
    case 1: c = 100; break;
    case 2: throw new Exception();  // Выход из switch посредством исключения
    case 3: c = 300; break;
}
1
4 / 4 / 3
Регистрация: 01.12.2015
Сообщений: 14
08.02.2018, 10:09 9
rar, оператор break завершает выполнение ближайшего оператора внешнего цикла или switch, в котором он находится. Управление передается оператору, который расположен после завершенного оператора.
1
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
08.02.2018, 10:16  [ТС] 10
kolorotur

А вот это для меня, как новичка в C#, это ценная информация ! а можно пояснить что значит throw new Exception()

C#
1
2
3
4
5
6
switch (a)
{
    case 1: c = 100; break;
    case 2: throw new Exception();
    case 3: c = 300; break;
}
0
Эксперт .NET
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
08.02.2018, 10:22 11
rar, было бы на порядок эффективнее просто почитать учебник по C#, чем задавать вопрос по каждому оператору языка.
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
08.02.2018, 10:22 12
Цитата Сообщение от rar Посмотреть сообщение
что значит throw new Exception()
Создание исключительной ситуации путем создания и "броска" (ключевое слово throw) объекта типа Exception или его наследника.
Исключение должно либо быть поймано в блоке try/catch, либо оно будет пробрасываться вверх по стеку вызовов вплоть до Main. Если оно не поймано и там, то приложение закрашится.
1
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
08.02.2018, 13:09 13
rar, вы бы всё-таки почитали книги какие чтоли? Почти все вопросы типа:
Цитата Сообщение от rar Посмотреть сообщение
что значит throw new Exception()
Цитата Сообщение от rar Посмотреть сообщение
зачем нужен break в вашем коде? что будет если его не ставить?
Цитата Сообщение от rar Посмотреть сообщение
Задача простая , но не знаю как решить
Отпадут сами собой.
1
08.02.2018, 13:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2018, 13:09
Помогаю со студенческими работами здесь

ссылка на переменную
For i = 1 To 8 mypath1="C:\1.xlsx" q = "mypath" & i Workbooks.Open (q) Мне нужно открыть...

Декремент и ссылка на переменную
Здравствуйте! Есть следующий код: #include <iostream> using namespace std; void...

Ссылка на переменную и переменная переменной
Комрады! Возник такой вопрос: Никак не могу понять то, что в теме писал. Особенно использование...

Ссылка на переменную другого класса
Всем привет ! Хочу создать ссылку на переменную класса Animation. class PLAYER { public:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru