求一个数是几位数。用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); } }