как сочетать switch и if else заявления - PullRequest
1 голос
/ 27 июня 2010

Я посещаю онлайн-урок по Java, и учитель попросил следующее: Напишите программу меню, в которой у пользователя запрашивается число, обозначающее четыре основных математических уравнения (сложение, вычитание, умножение, деление).Используя структуру if / else для выполнения требуемой операции, попросите пользователя ввести данные и решить уравнение.Я новичок в этом, но я не вижу смысла в if / else, но, думаю, это бесполезно.

Если я использую случаи 1, 2, 3, 4, как указано ниже, для определения операциикак мне обозначить случай с помощью оператора «If»?

int userSelection;
double x;        
double y;        
double answer;

switch ( userSelection ) {
   case 1:
        TextIO.putln("Let's add! ");
        TextIO.putln();
        TextIO.putln("Enter the first number: ");
        x = TextIO.getlnDouble();
    TextIO.putln("Enter the second number: ");
        y = TextIO.getlnDouble();
        break;

// Я подумал, что смогу использовать «If» вот так

        if (case 1);  // I don't know how to refference this correctly
        answer = x + y;
        TextIO.putln( x 'plus' y 'equals' answer);

Заранее спасибо!

Ответы [ 5 ]

1 голос
/ 29 июня 2010

Вы включаете userSelection , поэтому userSelection уже имеет нужное значение;Вы можете ссылаться на значение, ссылаясь на переменную userSelection :

if (userSelection == 1) {
    // add
} else if (userSelection == 2) {
   // subtract
} else if (userSelection == 3) {
   // multiply
} else if (userSelection == 2) {
   // divide
}
1 голос
/ 27 июня 2010

Операторы переключения регистра представляют собой структурную альтернативу использованию вложенных операторов if..else, в которых вы хотите запустить логику difnet для различных значений числового или числового типа данных.Он не сочетается с if..else и 2 разными подходами к решению условных задач.Какой из них лучше подходит, зависит от состояния, которое вы оцениваете.

Если я правильно понимаю ваш код, то я думаю, что вы ищете что-то вроде этого:

switch ( userSelection ) {  
case 1:  
    TextIO.putln("Let's add! ");  
    TextIO.putln();  
    TextIO.putln("Enter the first number: ");  
    x = TextIO.getlnDouble();  
    TextIO.putln("Enter the second number: ");  
    y = TextIO.getlnDouble();  
    answer = x + y;    
    TextIO.putln( x + " plus " + y + " equals " + answer);   
    break;  
case 2:  
    ... //oh, I don't know. but I would guess: let's subtract!  
    break; 
case 3:  
    ... //let's multiply!
    break; 
case 4:  
    ... //let's divide! 
    break; 

}

1 голос
/ 27 июня 2010

switch используется для одной данной переменной / выражения, а затем используются случаи для определения того, какое это значение, но поскольку вы не тестируете одну переменную / выражение, это неприменимо, вам следует использовать структуру if-elseif-else вместо этого.

1 голос
/ 27 июня 2010

Вот код пресудо для переписывания оператора CASE:

IF (Case==1) THEN
  *What to do when Case==1.*
ELSE IF (Case==2) THEN
  *What to do when Case==2.*
ELSE IF (Case==3) THEN
  *What to do when Case==3.*
ELSE IF (Case==4) THEN
  *What to do when Case==4.*
END IF

Вы должны будете написать это на Java. :) Удачи с твоим заданием.

0 голосов
/ 27 июня 2010

Мне кажется, что ваш инструктор не хочет, чтобы вы сначала использовали оператор switch, а просто использовал структуру управления потоком if:

if(booleanExpression)
{

}
else if(booleanExpression2)
{

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...