while 循环
初始程序-数数字 如下:
Scanner in = new Scanner(System.in);
System.out.print("input:");
int number = in.nextInt();
int count = 0;
while(number>0)
{
number=number /10;
count=count+1;
// System.out.println("number="+number+";count="+count);
}
System.out.println(count);
-
循环的意思:重复做直到不满足条件
当条件满足的时候,(判断条件),不断重复语句
条件成立是循环继续的条件 -
如何判断循环的正确
1)列出里面的变量,想一想每次循环变量发生的变化
注意(条件)里面的符号,大于还是大于等于
2)可以调试一下(stepover)
3)可以用一些特殊的数值进行判断
结果发现问题:0是0位数
do-whlie 循环
如何解决问题
Scanner in = new Scanner(System.in);
System.out.print("input:");
int number = in.nextInt();
int count = 0;
do
{
number=number /10;
count=count+1;
// System.out.println("number="+number+";count="+count);
}while(number>0);
System.out.println(count);
- 先进入循环,后判断条件
- 区别就在于什么时候判断
- do-whlie 循环的whlie后面需要加分号
计数循环
Scanner in = new Scanner(System.in);
int count = 100;
while(count>0)
{
System.out.println(count);
count =count-1;
}
System.out.println(count);
System.out.println("boom!");
- 以一个比较快的方式看跑了多少轮:(验证程序正确性)
小技巧可以选择一个小一点的数值去验证
算平均数
让用户输入一系列的正整数,最后输入-1表示输入结束
tip: 变量-算法-流程图-程序
Scanner in =new Scanner(System.in);
int number;
number = in.nextInt();
int count=0;
int sum=0;
while (number!=-1)
{
sum =sum+number;
count=count+1;
number= in.nextInt();
}
if (count>0)
{
System.out.println("average="+(double)sum/count);
}
- 不管是do-whlie循环也好,还是while循环也好,都有些复杂
猜数游戏
让计算机想一个数,然后用户来猜(100以内的正整数),告诉用户
大小,猜中多少次
tip:循环的条件是循环继续的条件,而不是“什么时候结束” 结束的条件
Scanner in = new Scanner(System.in);
int number = (int)(Math.random()*100+1);// [0,1)-->[0,100)
int a ;
int count =0;
do{
a =in.nextInt();
count=count+1;
if (a>number)
{
System.out.println("偏大");
}
else if(a<number)
{
System.out.println("偏小");
}
}while(a!=number);
System.out.println("恭喜你猜对了,你猜了"+count+"次");
- 注意:可以先写出想要做的循环里面的算法,然后确定是先后判断,再去选择使用while还是dowhile循环
正整数分解
例子:352
352%10——>个位(取余):2
352/10——>35
35%10——>5
35/10——>3
3%10——>3
3/10——>0
得到0 就不用再做下去了 ,并且可以逆序输出
Scanner in =new Scanner(System.in);
int number;
number = in.nextInt();
int result=0;
do{
int digit = number%10;
result = result*10+digit;
System.out.print(digit);
number=number/10;
}while (number>0);
System.out.println();
System.out.println(result);
- 如果用while来写的话会有微妙的差别,但是0的时候会不进入循环,直接输出0