while循环
- 先检查条件,再执行循环体(有可能一次也不执行)
- 形式:
while(<循环条件>)
{
<循环体语句>;
}
- 示例:
package Pracrice;
import java.util.Scanner;//输入一个整数,输出其位数
public class NumberCounter {
public static void main(String[]args) {
Scanner in = new Scanner(System.in);
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);//只能计算10位数以内的整数,原因未知
}
}
检查特殊数字,发现数字为0时,循环体一次也没有执行,输出结果错误,因此考虑do-while循环结构。
do-while循环
-
先执行循环体,再检查条件(至少执行一次)
-
形式:
do
{
<循环体语句>;
}
while(<循环条件>);
示例:
package Pracrice;
import java.util.Scanner;//输入一个整数,输出其位数
public class NumberCounter {
public static void main(String[]args) {
Scanner in = new Scanner(System.in);
int number = in.nextInt();
int count = 0;
do//do-while结构先do循环体,再检查条件。
{
number = number / 10;
count = count + 1;
System.out.println("number="+number+";count="+count);
}
while(number >0);
System.out.println(count);//只能计算10位数以内的整数,原因未知
}
}
- 猜数游戏
package Pracrice;
import java.util.Scanner;
public class GuessNumberGame
{
public static void main(String[]args)
{
Scanner in = new Scanner(System.in);
int number = (int)(Math.random()*100+1);//[0,1)-->[0,100)-->[1,100]
int count = 0;
int a;
// 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+"次。");
a = in.nextInt();
count = count+1;
while(a!=number)
{
if(a>number) {
System.out.println("猜大了");
a = in.nextInt();
count = count+1;}
else if(a<number) {
System.out.println("猜小了");
a = in.nextInt();
count = count+1;}
}
System.out.println("恭喜你猜对啦!你一共猜了"+count+"次。");
}
}
- 求平均数:
package Pracrice;
import java.util.Scanner;
public class Average {
public static void main(String[]args) {
Scanner in = new Scanner (System.in);
int number;
int count = 0;
int sum = 0;
// number = in.nextInt();
// while(number!=-1)
// {
// sum = sum + number;
// count = count +1;
// number = in.nextInt();
// }
// if (count>0)
// {
// System.out.println((double)(sum)/count);
// }
// }
//
//}
do
{
number = in.nextInt();
if(number!=-1)
{
sum = sum + number;
count = count +1;
}
}
while (number!=-1);
if (count>0)
{
System.out.println((double)(sum)/count);
}
}
}