Java while循环中的多个条件
我试图通过一次添加一天来迭代while循环,但它甚至不会第一次访问while循环。while循环中的条件是否正确?当我测试它时,它只在一个条件下工作,但在添加第二个条件时停止 应该是Java while循环中的多个条件,java,while-loop,Java,While Loop,我试图通过一次添加一天来迭代while循环,但它甚至不会第一次访问while循环。while循环中的条件是否正确?当我测试它时,它只在一个条件下工作,但在添加第二个条件时停止 应该是 import java.util.Calendar; import java.util.GregorianCalendar; public class CountingSundays { public static void main(String args[]) { Calendar
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CountingSundays {
public static void main(String args[]) {
Calendar cal = new GregorianCalendar(1901, 00, 01); // month set to 0for jan , 1= feb etc
while((cal.get(Calendar.YEAR) != 2001) && (cal.get(Calendar.MONTH) != 0) && cal.get(Calendar.DAY_OF_MONTH) != 1) { // while not 1/1/2001
System.out.print(cal.get(Calendar.MONTH));
// cal.add(Calendar.DAY_OF_MONTH, 1);
}
}
}
应该是
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CountingSundays {
public static void main(String args[]) {
Calendar cal = new GregorianCalendar(1901, 00, 01); // month set to 0for jan , 1= feb etc
while((cal.get(Calendar.YEAR) != 2001) && (cal.get(Calendar.MONTH) != 0) && cal.get(Calendar.DAY_OF_MONTH) != 1) { // while not 1/1/2001
System.out.print(cal.get(Calendar.MONTH));
// cal.add(Calendar.DAY_OF_MONTH, 1);
}
}
}
这只是一个简单的逻辑错误。如果哪怕其中一个是假的(比如说,如果月份是0),那么您就有true&&false&&true,这是假的 您需要在整个表达式之外使用“not”,或者需要使用“| |”组合它们:
while( !(cal.get(Calendar.YEAR) == 2001 && cal.get(Calendar.MONTH) == 0 && cal.get(Calendar.DAY_OF_MONTH) == 1) ) { // while not 1/1/2001
或
这只是一个简单的逻辑错误。如果哪怕其中一个是假的(比如说,如果月份是0),那么您就有true&&false&&true,这是假的 您需要在整个表达式之外使用“not”,或者需要使用“| |”组合它们:
while( !(cal.get(Calendar.YEAR) == 2001 && cal.get(Calendar.MONTH) == 0 && cal.get(Calendar.DAY_OF_MONTH) == 1) ) { // while not 1/1/2001
或
+1因为你在开场白中解释了逻辑错误。对于那些感兴趣的人来说,这两个陈述之间的关系是应用了德摩根定律:+1因为你在开场白中解释了逻辑错误。对于那些感兴趣的人来说,这两种说法之间的关系适用于德摩根定律: