Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> case expressions must be constant expressions 
:(
    Опции темы
Griphon
Дата 8.10.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



Добрый день. Есть два класса

Код

public class First{
   public final static int x1=0,
   x2=1,
   x3=2;
}


и второй 
Код

public class Second{
  int value;
  void someMethod(){
 switch (value){
    case First.x1: инструкция; break;
    case First.x2: инструкция; break;
    case First.x3: инструкция; break; 
    default:System.out.println();break;
    }
 }
}



Появляется сообщение об ошибке, в строках "case":
case expressions must be constant expressions



Это сообщение отредактировал(а) Griphon - 8.10.2010, 15:45
PM MAIL   Вверх
Egik2
Дата 8.10.2010, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 29.7.2008
Где: Агудзера

Репутация: нет
Всего: 11



Почитай, как применяется case
case tutorial


Это сообщение отредактировал(а) Egik2 - 8.10.2010, 15:33


--------------------
Три великие добродетели программиста: лень, нетерпение и самомнение (Larry Wall)
a-nav.com
developer-blog.ru
world-poetry.org
PM MAIL WWW ICQ   Вверх
Griphon
Дата 8.10.2010, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



Цитата

A switch works with the byte, short, char, and int primitive data types. 


Тема не раскрыта 
PM MAIL   Вверх
powerOn
Дата 8.10.2010, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



у меня скомпилилось без ошибок. использовал source level 1.3 - 1.6


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Griphon
Дата 8.10.2010, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



Хм... , Речь идет о примере из книги Интернет программирование на Java, Вадима Будилова. Заинтересовала причина ошибки, в сети вразумительного ответа не нашел.

классы книг описанные в книге


первый
Код

public class Card {
public final static int SPADES=0,
HEARTS=1,
DIAMONDS=2,
CLUBS=3;
public final static int ACE=1,
JACK=11,
QUEEN=12,
KING=13;
private final int suit;
private final int value; 

public Card(int theSuit,int theValue){
    value=theValue;
    suit=theSuit;
}
public int getSuit(){
    return suit;
}
public int getValue(){
    return value;
}
public String getValueAsString(){
    switch (value){
    case 1: return "Ace";
    case 2: return "2";
    case 3:return "3";
    case 4: return "4";
    case 5: return "5";
    case 6: return "6";
    case 7: return "7";
    case 8: return "8";
    case 9: return "9";
    case 10: return "10";
    case 11: return "Jack";
    case 12 : return "Queen";
    case 13 :return "King";
    default: return "???";
    }
}
public String getSuitAsString(){
    switch (suit){
    case SPADES :return "Spades";
    case HEARTS: return "Hearts";
    case DIAMONDS :return "Diamonds";
    case CLUBS: return "Clubs";
    default:return "??";
    }
}
public String toString(){
    return getValueAsString()+"of"+getSuitAsString();
}

}



и второй
Код

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class Cards extends JApplet{

.............................
..........................
.......................

void drawCard(Graphics g,Card card,int x,int y){
        if (card==null){
             .......................
                     ......................
        }
        else{
            int row=0;
                        
            switch (card.getSuit()){
                 case card.CLUBS :row=0; break;
                  case card.HEARTS: row=1; break;
                  case card.SPADES: row=2; break;
                  case card.DIAMONDS: row=3; break;
            
            }
            int sx,sy;
            sx=40*(card.getValue()-1);
            sy=60*row;
            g.drawImage(cardImages, x, y, x+40, y+60, sx, sy, sx+40, sy+60, this);
        }
            
    }

}


Это сообщение отредактировал(а) Griphon - 8.10.2010, 16:18
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0866 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.