如果fl = 0
和变量if fl
if a < 10
a = a + 1
else
a = a - 1
end
end
,在下列情况下会发生什么?
if fl
我不明白if 0
部分是什么意思。我将其视为if false
或if fl == 0
。这对我来说并不意味着什么。 if fl
会对我更有意义。
那么package com.mvn.blog.dao;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.mvn.blog.domain.UserDomain;
import com.mvn.blog.dto.UserDto;
import com.mvn.blog.utility.CommonUtils;
@Repository
public class UserDaoImpl implements IUserDao {
@Autowired
SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sf) {
this.sessionFactory = sf;
}
@Transactional
public Boolean saveUser(UserDto userDto) throws Exception {
Session session = this.sessionFactory.getCurrentSession();
boolean result= false;
UserDomain user = CommonUtils.convertObject(userDto, UserDomain.class);
session.save(user);
result = true;
return result;
}
@Transactional
public List<UserDto> getUserList() throws Exception {
List<UserDto> userList = new ArrayList<UserDto>();
Session session = this.sessionFactory.getCurrentSession();
Criteria user = session.createCriteria(UserDomain.class);
List<UserDomain> result = user.list();
//System.out.println(result);
for(UserDomain userDomain : result){
UserDto userDto = CommonUtils.convertObject(userDomain, UserDto.class);
userList.add(userDto);
}
//System.out.println(userList);
return userList;
}
}
}
是什么意思?
答案 0 :(得分:2)
Matlab中的条件if x
相当于if all(logical(x)) == true
所以让我们解开all(logical(x))
logical(x)
:由于以下测试中的错误,我们可以看到此操作正在发生。所以x
必须是数字(或Matlab视为ASCII值的字符数组)
if 1; disp('test'); end % >> displays 'test'
if [1 2]; disp('test'); end % >> displays 'test'
if 'hi'; disp('test'); end % >> displays 'test', as int8('hi') = [104 105]
if table(); disp('test'); end % >> displays error 'Conversion to logical from table
% is not possible'
all(logical(x))
:这意味着如果x
是一个数组,那么所有元素都必须评估为true
。我们可以通过使用几个例子来测试这种情况:
if [true true]; disp('test'); end % >> displays 'test'
if [true false]; disp('test'); end % >> displays nothing
if [1 0]; disp('test'); end % >> displays nothing
如果您想编写更清晰,更易于维护的代码,那么通常最好是明确并使用if all(logical(x)) == true
。当您阅读代码时,会发生什么变得更加明显,并且会让您考虑如何使用any
之类的操作来实现不同的结果。
在您的示例中,如果fl = 0
然后all(logical(fl)) = false
,则您永远不会输入if
条件。
答案 1 :(得分:1)
如果在fl = 0时在MATLAB中运行它,则没有任何反应,表明0表示错误。如果你将fl更改为0以外的任何值,那么代码就会执行并打印出if中的任何代码,对于a = 5的情况,它会打印a = 6