if (a==a)
{
}
как сделать, что бы условие не выполнилось???
вариант типа
if (1==0)
if (a==a)
{
}
не пойдет
if (a==a)
{
}
как сделать, что бы условие не выполнилось???
вариант типа
if (1==0)
if (a==a)
{
}
не пойдет
Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.
19 сентября 2008 в 19:05
забыл сказать – это на С++
19 сентября 2008 в 13:05
Я тоже подумал про NaN. Причём это решение универсальное, не зависящее от языка.
18 сентября 2008 в 20:04
А чего подробнее-то, скомпилируй да запусти
//java.sun.com/docs/books/jls/third_edition/htm...
Floating-point equality testing is performed in accordance with the rules of the IEEE 754 standard:
* If either operand is NaN, then the result of == is false but the result of != is true. Indeed, the test x!=x is true if and only if the value of x is NaN. (The methods Float.isNaN and Double.isNaN may also be used to test whether a value is NaN.)
18 сентября 2008 в 20:00
Можно подробнее про это, я что-то не слышал о таком
18 сентября 2008 в 19:05
>Если а – тип типа int, char и т.д.
Егор, повторяю:
double a = Double.NaN;
if(a==a) System.out.println("Not gonna see this message, buddy!");
else System.out.println("Two NaN's are never considered equal");
18 сентября 2008 в 19:04
Это разные буквы, русская и латинская. вообще жесть, что джава позволяет по-русски иденты называть, мрак.
18 сентября 2008 в 18:04
int a = 10;
int а = 2;
По-моему правильно так:
int a = 10;
а = 2;
Или я ошибаюсь?
18 сентября 2008 в 18:02
хотя в рамках джавы я не вижу путей решения. Если а – тип типа int, char и т.д. то значение будет одинаковым, если же это объект, то адрес также одинаковый, а так как перегружать операторы в джаве не можем, посему думаеться что решить врядли удасться
18 сентября 2008 в 18:02
Жека jkff Кирпичев – условие выполнено, ничего не нарушаеться
18 сентября 2008 в 16:00
Хитро
18 сентября 2008 в 14:05
Вы не поверите, но на яве это выводит Not equals
public class Testing {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10;
int а = 2;
if(a==а)
System.out.println("equals");
else
System.out.println("Not equals.");
}
}
18 сентября 2008 в 14:04
я думаю задача в рамках плюсов решена?
18 сентября 2008 в 12:01
блин, а ведь и правда.
static int __t = 0;
#define a (++__t)
18 сентября 2008 в 12:00
а можно типа
#define a rand()
18 сентября 2008 в 1:05
//vkontakte.ru/board.php?act=topic&tid=6492080
тут все давно разобрано было =)
18 сентября 2008 в 0:05
Да и с криво написанным оператором == тож может быть.
17 сентября 2008 в 23:02
Не, решение с NaN вполне себе со смыслом – это реально может неявно встретиться в коде и довести до белого каления.
17 сентября 2008 в 16:05
нужно найти чела, который этоу головоломку придумал и у него, в конце концов, узнать
17 сентября 2008 в 16:03
Головоломки без смысла.. =\
17 сентября 2008 в 15:05
Баянище. только что было в группе программисты C++
вообще это классическая сишная задача на макросы и приоритеты операций
например
#definea0&&0
17 сентября 2008 в 15:00
В Java нельзя перегружать операторы.
Вот не извращенный пример: В Java например условие не выполнится, если a имеет тип double и равно NaN.
17 сентября 2008 в 15:00
А, Алексей Гридин уже сказал..
17 сентября 2008 в 15:00
Собственно код:
class MyType
{
public MyType()
{
}
public static bool operator ==(MyType x, MyType y)
{
return (false);
}
public static bool operator !=(MyType x, MyType y)
{
return (false);
}
}
class Program
{
static void Main(string[] args)
{
MyType a = new MyType();
if (a == a)
{
Console.WriteLine("True");
}
else
{
Console.WriteLine("False");
}
}
}
17 сентября 2008 в 14:05
Alexey AGUtilities Gorshkov
+1
17 сентября 2008 в 14:05
Если это C++, C# или Java, то можно перегрузить оператор ==.
17 сентября 2008 в 14:04
if (!(a==a))
{
}
17 сентября 2008 в 14:02
ну дык попробуй
17 сентября 2008 в 14:02
А какой язык?
17 сентября 2008 в 14:01
вопрос именно в значении самого а?
какой-нибудь #define a rand() не прокатит?
17 сентября 2008 в 14:00
Вставить return перед оператором и этот оператор станет недостижимым кодом. Ещё варианты вызвать исключение, метку вставить с goto. Если это джава и можно менять а, тогда сделать его нечислом (опять таки если это число). Самое простое закоментить.