第五 Java循环结构之while循环

C语言中的循环结构


需求:需要打印一行字符串"今天天气特别好",100次

就需要将该语句打印100遍System.out.println("hellogzitcast");

那么如何解决该问题?

    Java提供个一个称之为循环的结构,用来控制一个操作的重复执行。

                int count = 0;
		while (count < 100) {
			System.out.println("今天天气特别好");
			count++;
                 }
                 System.out.println("over");

变量count初始化值为0,循环检查count<100是否为true,如果为true执行循环体(while后{}之间的语句),输出"hellogzitcast"语句,然后count自增一,重复循环,直到count是100时,也就是count<100为false时,循环停止。执行循环之后的下一条语句。

    Java提供了三种类型的循环语句:while循环,do-while循环和for循环。

 

1、while语句格式

while(条件表达式)

{

    执行语句;

}

 

 

定义需求:想要打印5次helloworld

public static void main(String[] args) {
		System.out.println("hello world");
		System.out.println("hello world");
		System.out.println("hello world");
		System.out.println("hello world");
		System.out.println("hello world");
}

第二种方式

public static void main(String[] args) {
		int x = 0;
		while (x < 5) {
			System.out.println("hello java ");
		}
}

如果是在dos里编译和运行,是不会停止,除非系统死机。需要ctrl+c来结束。

这就是真循环或者死循环。因为x<5永远为真。


public static void main(String[] args) {
		int x = 0;
		while (x < 5) {
			System.out.println("hello java ");
			x++;
		}
	}


让x自增,那么就会有不满足条件的时候。循环就会结束。


注意:要精确控制循环的次数。常犯错误是是循环多执行一次或者少执行一次。

例如会执行101次,想要执行100次,要么是count初始值为1,然后count<=100

要么是count初始值为0,coung<100


                int count = 0;
		while (count <=100) {
			System.out.println("hello");
			count++;
		}
		System.out.println("over");



猜数字游戏:

编写程序随即生成一个0-100之间的随机数。程序提示用户输入一个数字,不停猜测,直到猜对为止。最后输出猜测的数字,和猜测的次数。并且如果没有猜中要提示用户输入的值是大了还是小了。

思考:

如何生成1-100之间随机数?

(int)(Math.random()*100)+1;

如何提示用户输入数字,

Scanner  sc=new Scanner(System.in);

int guessNum= sc.nextInt();

需要将随机数和用户输入的数字进行比较。

 

猜一次:

                Scanner sc = new Scanner(System.in);
                int num = (int)(Math.random()*100)+1;
		System.out.println("请输入0-100之间整数");
		int guessNum = sc.nextInt();
		if (guessNum == num) {
			System.out.println("中啦");
		} else if (guessNum < num) {
			System.out.println("小啦");
		} else {
			System.out.println("大了");
		}

这个程序只能才一次,如何让用户重复输入直到猜对?

可以使用while循环


public static void main(String[] args) {
		int num = (int)(Math.random()*100)+1;
		Scanner sc = new Scanner(System.in);
		while (true) {
			System.out.println("请输入1-100之间整数");
			int guessNum = sc.nextInt();
			if (guessNum == num) {
				System.out.println("中啦");
			} else if (guessNum < num) {
				System.out.println("小啦");
			} else {
				System.out.println("大了");
			}
		}
	}


该方案发现了问题,虽然实现了让用户不停的输入,但是即使猜中了程序也不会停止。

那么就需要控制循环次数了。也就是while()括号中的条件表达式。当用户猜测的数和系统生成的数字不相等时,就需要继续循环。


int num = (int)(Math.random()*100)+1;
		Scanner sc = new Scanner(System.in);
		
		int guessNum = -1;
		while (guessNum != num) {
System.out.println("请输入1-100之间整数");
			guessNum = sc.nextInt();
			if (guessNum == num) {
				System.out.println("中啦");
			} else if (guessNum < num) {
				System.out.println("小啦");
			} else {
				System.out.println("大了");
			}
		}

为什么将guessNum初始化值为-1?因为如果初始化为0到100之间程序会出错,因为可能是要猜的数。

1:首先程序生成了一个随机数

2:用户输入一个数字

3:循环检查用户数字和随机数是否相同,知道相同位置,循环结束







  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值