Java循环

来源:互联网 发布:高新区行知小学好不好 编辑:程序博客网 时间:2024/05/22 09:23

求一个数是几位数。用while循环和do-while循环都满足条件

package one;import java.util.Scanner;public class one {    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner in=new Scanner(System.in);//用来作输入        int num=in.nextInt();        int count=0;        if(num<0)        {            num=-num;        }        while(num>0)        {            num=num/10;            count++;            System.out.println("num="+num+";count="+count);        }        System.out.println("该数字是"+count+"位数");    }}

计数运算
问以下程序,循环执行多少次,循环结束有没有输出0,循环最后结果是多少。

package one;import java.util.Scanner;public class one {    public static void main(String[] args) {        // TODO Auto-generated method stub//      Scanner in=new Scanner(System.in);//用来作输入//      int num=in.nextInt();        int count=100;        while(count>=0)        {            count=count-1;            System.out.println("count="+count);        }        System.out.println("最后输出count="+count);        System.out.println("结束");    }}

答案是

循环第一位输出的是99,最后一位是-1;循环执行了99-(-1)+1=101次,最后没有输出0,最后输出的是-1。

当while循环改成while括号中count大于0时,结果又如何呢?

package one;import java.util.Scanner;public class one {    public static void main(String[] args) {        // TODO Auto-generated method stub//      Scanner in=new Scanner(System.in);//用来作输入//      int num=in.nextInt();        int count=100;        while(count>0)        {            System.out.println("count="+count);            count=count-1;        }        System.out.println("最后输出count="+count);        System.out.println("结束");    }}

答案是

循环第1个输出是100,最后一个是1,循环执行了100-1+1=100次。然而最后循环结束后输出的是0。在循环体内最后一个是1.

如果模拟一个很大次数的循环,可以模拟较少循环次数,然后推断出较大循环次数。

如果改成do-while循环。

package one;import java.util.Scanner;public class one {    public static void main(String[] args) {        // TODO Auto-generated method stub//      Scanner in=new Scanner(System.in);//用来作输入//      int num=in.nextInt();        int count=100;        do{            System.out.println("count="+count);            count=count-1;        }while(count>0);        System.out.println("最后输出count="+count);        System.out.println("结束");    }}

同样第一个输出的是100,循环体内最后一个输出的是1,一共执行了
100-1+1=100次循环,但是最后输出结果是0.

算平均数

package one;import java.util.Scanner;public class one {    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner in=new Scanner(System.in);//用来作输入        int num=in.nextInt();        int sum=0;        double a;        int i=0;        while(num!=-1)        {            sum=sum+num;            i++;            num=in.nextInt();        }        if(i>0)        {             System.out.println("平均数为avg="+(double)sum/i);        }    }}

猜数游戏
让计算机来想一个数,然后用户来猜出来,用户每输入一个数,就告诉用户猜的数大了或者小了,知道猜中为止,然后告诉用户猜了多少次。

package one;import java.util.Scanner;public class one {    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner in=new Scanner(System.in);//用来作输入        int num=(int)(Math.random()*100);//[0,1)之间的数-需要乘以100--[0,100)        int a;        int count=0;        do{            a=in.nextInt();            count=count+1;            if(a>num)            {                System.out.println("你猜的数大了");            }            else if(a<num)            {                System.out.println("你猜的数小了");            }           }while(a!=num);             System.out.println("恭喜你猜对了,你猜了"+count+"次");        }    }

整数分解

package one;import java.util.Scanner;public class one {    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner in=new Scanner(System.in);//用来作输入        int num=in.nextInt();        int a,result=0;            do{            a=num%10;            result=result*10+a;            System.out.println(a);            num=num/10;        }while(num>0);             System.out.println(result);        }    }
原创粉丝点击