当前位置: 代码迷 >> Java相关 >> 关于java中的do while语句,while里面的条件设置有关问题
  详细解决方案

关于java中的do while语句,while里面的条件设置有关问题

热度:25   发布时间:2016-04-22 21:10:01.0
关于java中的do while语句,while里面的条件设置问题
[code=javapublic class Test {
private static int a;//表示该变量为类的所有实例共享
private static int c;
public Test(){
a=0;
c=0;}

public static void main(String[] args) {
// TODO Auto-generated method stub


do{

--c;
a=a-1;
}while(a<=0);//是判断初始条件而不是do里面的语句
System.out.println(c);
}][/code]

while里判断的条件不是构造方法里的值么,为什么结果是2147483647???!!!
当我把条件换成while(a>=0)或while(a==0)时,结果都是-1.为什么<=0就行不通了???
------解决方案--------------------
Java int有最小值,再减就会变成最大值,就是你上面的数字
------解决方案--------------------
引用:
[code=javapublic class Test {
private static int a;//表示该变量为类的所有实例共享
private static int c;
public Test(){
a=0;
c=0;}

public static void main(String[] args) {
// TODO Auto-generated method stub


do{

--c;
a=a-1;
}while(a<=0);//是判断初始条件而不是do里面的语句
System.out.println(c);
}][/code]

while里判断的条件不是构造方法里的值么,为什么结果是2147483647???!!!
当我把条件换成while(a>=0)或while(a==0)时,结果都是-1.为什么<=0就行不通了???




。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
只有蛋疼如我才会回吧~~~~

请仔细理解do while循环的执行过程~
你应该理解错了
------解决方案--------------------
引用:
Quote: 引用:

while判断的是do里面的,不是构造方法的;
你把构造方法删除了吧;
应该是没用的;
楼上说的没错;
int的最大值加1就是最小值;
没有赋初始值还怎么判断呢?不定义a,c肯定不行,放构造方法里效果一样吧?

你试试再说
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

[code=javapublic class Test {
private static int a;//表示该变量为类的所有实例共享
private static int c;
public Test(){
a=0;
c=0;}

public static void main(String[] args) {
// TODO Auto-generated method stub


do{

--c;
a=a-1;
}while(a<=0);//是判断初始条件而不是do里面的语句
System.out.println(c);
}][/code]

while里判断的条件不是构造方法里的值么,为什么结果是2147483647???!!!
当我把条件换成while(a>=0)或while(a==0)时,结果都是-1.为什么<=0就行不通了???




。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
只有蛋疼如我才会回吧~~~~

请仔细理解do while循环的执行过程~
你应该理解错了
那怎样让它输出int型的最小值而不是上面那个值呢?



java.lang
Class Integer

    java.lang.Object
        java.lang.Number
            java.lang.Integer

    All Implemented Interfaces:
        Serializable, Comparable<Integer>


    public final class Integer
    extends Number
    implements Comparable<Integer>

    The Integer class wraps a value of the primitive type int in an object. An object of type Integer contains a single field whose type is int.

    In addition, this class provides several methods for converting an int to a String and a String to an int, as well as other constants and methods useful when dealing with an int.

    Implementation note: The implementations of the "bit twiddling" methods (such as highestOneBit and numberOfTrailingZeros) are based on material from Henry S. Warren, Jr.'s Hacker's Delight, (Addison Wesley, 2002).

    Since:
        JDK1.0
    See Also:
        Serialized Form

        Field Summary
        Fields  Modifier and Type  Field and Description
        static int  MAX_VALUE
        A constant holding the maximum value an int can have, 231-1.
        static int  MIN_VALUE
        A constant holding the minimum value an int can have, -231.
        static int  SIZE
        The number of bits used to represent an int value in two's complement binary form.
  相关解决方案