Можно ли сделать, если утверждения короче? Например:могу я сделать если короче?
if (intno == 0 || intno == 4 || intno == 7)
может быть что-то вроде:
if (intno == 0 || 4 || 7)
Это будет воспитывать ошибку, но есть что-нибудь подобное?
Можно ли сделать, если утверждения короче? Например:могу я сделать если короче?
if (intno == 0 || intno == 4 || intno == 7)
может быть что-то вроде:
if (intno == 0 || 4 || 7)
Это будет воспитывать ошибку, но есть что-нибудь подобное?
вы можете создать отображение истины, как
Set<Integer> set = new HashSet<Integer>();
map.add(0);
map.add(4);
map.add(7);
, а затем
if(map.contains(intValue){
}
Для целочисленных типов и перечислений, вы можете использовать переключатель заявление вместо:
switch(intno) {
case 0:
case 4:
case 7:
//code here
break;
}
Это также работает для строк в Java 7+
уже было предложено в комментариях следующее:
Arrays.asList(0, 4, 7).contains(intno)
Это правильно и короче, но медленнее.
Обратите внимание, что этот код выполняет множество операций за кадром:
0
, 4
и 7
int
с до Integer
с.List
, содержащий этот массивintno
в Integer
equals
на каждый объектЭто путь медленнее, чем три проверки. Конечно, если вы выполняете этот код каждый раз, когда пользователь нажимает кнопку, это не имеет значения. Если вы называете это сто раз в секунду, это возможно.
На мой взгляд, однако, использование этого может быть более четким, чем использование длинного if, особенно если вместо 3 существует 15 действительных условий. Если вместо того, чтобы использовать магические числа вы даже хранить возвращенный список, вы можете получить некоторые моменты ясности:
private static final List<Integer> VALID_NUMBERS = Arrays.asList(0, 4, 7);
// ...
if (VALID_NUMBERS.contains(intno)) {
// Code here
}
Это является короче и, возможно, яснее. Это является медленнее, поэтому будьте осторожны с этими конструкциями, не используйте его каждый раз, когда сможете.
Нет. Я уверен, что это было задано до ... – awksp
, что должно быть довольно очевидно ...... но так или иначе, 'Int int = 0;' было бы то, что означало – user3720291
Вы должны знать 'int' - это ключевое слово. – NewUser