Java if和else语句都在While循环中执行

Java if和else语句都在While循环中执行,java,Java,下面是我的代码。if和else语句都将被执行。有人能帮我解决这个问题吗 Statement st = con.createStatement(); String sql = "Select Attribute from attribute"; ResultSet rs = st.executeQuery(sql); while(rs.next()) { if(Message.contains(rs.getString("Attribute")) || Subject.contains(r

下面是我的代码。if和else语句都将被执行。有人能帮我解决这个问题吗

Statement st = con.createStatement();
String sql = "Select Attribute from attribute";
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
    if(Message.contains(rs.getString("Attribute")) || Subject.contains(rs.getString("Attribute")) == true) {
        response.sendRedirect("User_Send.jsp?auth=1");                              
    } else {
        Statement st2 = con.createStatement();
        String query = "insert into Message(Username,REmail,Subject,Message,Date,Status) values('"+ Username +"','" + To + "','" + Subject + "','" + Message + "','" + Date + "','" + "Done" + "')";
        int i = st2.executeUpdate(query);
        if(i!=0) {
            out.println("<h1 style='text-align:center;color:Red'>Message Sent Successfully</h1>");
        }                            
    }
}
语句st=con.createStatement(); String sql=“从属性中选择属性”; 结果集rs=st.executeQuery(sql); while(rs.next()){ if(Message.contains(rs.getString(“属性”))| | Subject.contains(rs.getString(“属性”))==true){ sendRedirect(“User_Send.jsp?auth=1”); }否则{ 语句st2=con.createStatement(); String query=“插入到消息(用户名、电子邮件、主题、消息、日期、状态)值(“+Username+”、“+To+”、“+Subject+”、“+Message+”、“+Date+”、“+”完成“+”)”; int i=st2.executeUpdate(查询); 如果(i!=0){ out.println(“消息发送成功”); } } }
如果有多个结果,并且每个子句至少有一个结果中有条件,则将执行
if
else
子句

如果您需要更多帮助,您需要告诉我们正在发生什么,而不是您认为正在发生的结果。

  • 在while外部声明布尔标志
  • 在if中设置为true
  • 过一会儿再检查那个标志
  • 如果为真,则重定向

    • 这是因为在某些迭代中,if语句为true,而在另一些迭代中,if语句为false并转到else语句。不可能两者同时发生


      我强烈建议您对此进行调试,如果您不知道如何调试,请立即开始,因为如果您无法调试,您将无法成为一名优秀的程序员。

      您是否尝试调试此问题?是否重新启动了eclipse?我需要检查文本是否包含数据库中的字符串。如果它包含字符串,那么它将被重定向,如上所示。如果没有,则应将值插入数据库。但是问题是if和else子句都被执行了。就在
      if
      语句之前,执行
      println()
      来打印
      rs.getString()的值。您会发现,
      println()
      执行多次,并且至少一次满足
      if
      条件,至少一次不满足。当你在做的时候,打印出属性的值,然后代码将其与该值进行比较。你能告诉我怎么做吗?