从零学Java(21)之while 语句,小AD竟然想躺着上王者!

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零学Java(21)之while 语句,小AD竟然想躺着上王者!相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

导航

✪ 从零学Java系列目录索引
◄上一篇  20.switch case语句
►下一篇待更新     

引言

♀ 小AD:哥,枪刚人猛!
♂ 明世隐:之前不是说我 嘴刚人猛吗
♀ 小AD:你玩赵云确实挺猛,不是有句台词叫:枪出如龙吗?
♂ 明世隐:对啊,就是直捣黄龙,把对面AD打的不敢出门。
♀ 小AD:好在我们是一对的,我不是对面AD。
♂ 明世隐:今天说说这么好听,说有什么目的?
♀ 小AD:没什么目的啊,就是简单夸一下明哥!
♂ 明世隐:管你呢,while 语句学一下?
♀ 小AD:随意,反正很简单,信手拈来!
♂ 明世隐:行,那就好,走着

while 语句

while 语句是 Java 最基本的循环语句,是一种先判断的循环结构,可以在一定条件下重复执行一段代码。该语句需要判断一个测试条件,如果该条件为真,则执行循环语句(循环语句可以是一条或多条),否则跳出循环。

while 循环语句的语法结构如下:

while(条件表达式) {
语句块;
}

其中语句块中的代码可以是一条或者多条语句,而条件表达式是一个有效的 boolean 表达式,它决定了是否执行循环体。当条件表达式的值为 true 时,就执行大括号中的语句块。

实例1

while循环的条件为 true

public class Demo1 {

	public static void main(String[] args) {
		//设定循环条件为true,则会一直执行,注意死循环
		while (true) {
			System.out.println("while循环语句执行");
		}
	}
}

运行结果:

while循环语句执行
while循环语句执行
while循环语句执行
while循环语句执行
while循环语句执行
while循环语句执行
while循环语句执行

♀ 小AD:明哥,死机了要
♂ 明世隐:那到不至于
♀ 小AD:那也好像不能这么写吧,程序不会累死吗?
♂ 明世隐:你累死它都不会累死,我是故意这么写的,让你知道,不能这么写。
♀ 小AD:哦,那就是反面教材咯。
♂ 明世隐:上面的程序是死循环,程序会一直运行,直到崩溃,所以写while循环的时候要注意死循环的情况,设定好退出条件。
♀ 小AD:怎么设定
♂ 明世隐:比如在循环体里面加一个break直接退出。

public class Demo1 {

	public static void main(String[] args) {
		//设定循环条件为true,则会一直执行,注意死循环
		while (true) {
			System.out.println("while循环语句执行");
			break;
		}
	}
}

运行结果:

while循环语句执行

当然我们平时肯定不会这么写,是达到合适的条件才跳出,这里为了方便,就直接用break了。

实例2:

while条件为false,编译器会直接爆红,这样是无效的语句。

♀ 小AD:就是说不能直接写false
♂ 明世隐:因为如果false,里面的语句就刽执行啊,所以编译器就默认给你报错了。
♀ 小AD:所以这个while必须要是true?一夫一妻?
♂ 明世隐:也不是非得这样,可以用变量来设置,如果你直接写true、false在这while的括号里头,肯定只能写true
♀ 小AD:所以还有其他写法?
♂ 明世隐:当然,我们可以通过变量来设置条件,这样刚才的false情况就不会报错了。
♀ 小AD:为什么这样就不会报错?
♂ 明世隐:既然是变量,那肯定是有可能改变的呀,编译器就不会报错了,因为你可能是true
♀ 小AD:哦,那我知道了。
♂ 明世隐:当然如果用false,while语句里肯定是没有执行的。
♀ 小AD:好的
♂ 明世隐:比如下面的例子。

实例3

public class Demo3 {

	public static void main(String[] args) {
		//变量
		boolean con = false;
		while (con) {
			System.out.println("while循环语句执行");
			break;
		}
	}
}

实例4

用户输入一个数,当这个数大于0,则会输出并持续递减输出。

import java.util.Scanner;

public class Demo4 {

	public static void main(String[] args) {
		System.out.println("请输入一个数:");
		//定义用户输入
		Scanner scanner = new Scanner(System.in);
		//获取输入
		int num = scanner.nextInt();
		//while语句,条件是num>0
		while (num>0) {
			//打印
			System.out.println("打印数字:"+num);
			//递减
			num--;
		}
	}
}

运行结果:

请输入一个数:
10
打印数字:10
打印数字:9
打印数字:8
打印数字:7
打印数字:6
打印数字:5
打印数字:4
打印数字:3
打印数字:2
打印数字:1

♀ 小AD:明哥,这里怎么不用 break 退出了呢?你之前说要用break的。
♂ 明世隐:会死循环吗?这里不用担心,因为num - -,判断条件是num>0,所以程序会自己退出。
♀ 小AD:也就是每次执行里面的代码就会判断一次num>0?
♂ 明世隐:对呀,比如第一次输入10,然后进到while循环,等num–,后num=9了,9>0 是true还是false?
♀ 小AD:true
♂ 明世隐:那true的话 while的循环是不是要继续执行。
♀ 小AD:对啊,再执行好像就会是8
♂ 明世隐:所以又会执行。
♀ 小AD:执行到1>0,在num–,num就等于0 了。
♂ 明世隐:那这时候num>0 是true还是false
♀ 小AD:false
♂ 明世隐:while的条件是false会怎么样?
♀ 小AD:就不会执行了。
♂ 明世隐:所以会死循环吗?
♀ 小AD:不会,哥我懂了,你讲的真详细啊,不愧是你,明哥哥!
♂ 明世隐:别拍马屁!当然我们也可以写入break,在合适的情况下主动退出,如下例

实例5

用户输入一个数,则会输出并持续输出并递减,在while循环内,主动去判断,这个数递减后如果小于等于0,使用break使while退出。

import java.util.Scanner;

public class Demo5 {

	public static void main(String[] args) {
		System.out.println("请输入一个数:");
		//定义用户输入
		Scanner scanner = new Scanner(System.in);
		//获取输入
		int num = scanner.nextInt();
		//while语句,条件是true
		while (true) {
			//打印
			System.out.println("打印数字:"+num);
			//递减
			num--;
			//加入主动退出条件
			if(num<=0){
				break;
			}
		}
	}
}

运行结果:

请输入一个数:
9
打印数字:9
打印数字:8
打印数字:7
打印数字:6
打印数字:5
打印数字:4
打印数字:3
打印数字:2
打印数字:1

♀ 小AD:哇,明哥,我感觉我好像掌握了。
♂ 明世隐:希望如此。
♀ 小AD:所以。。。
♂ 明世隐:所以什么?
♀ 小AD:所以我想写一段代码,请明哥指教。
♂ 明世隐:来

public class LearnWhileDemo {

	public static void main(String[] args) {
		String duanwei = "黄金";
		while(!"最强王者".equals(duanwei)){
			System.out.println("明哥带小鲁班上分");
		}
	}
}

♀ 小AD:怎么样哥?
♂ 明世隐:你的想法是好的,但是问题是会死循环。
♀ 小AD:我知道啊,所以说呢?
♂ 明世隐:你就是想暗示什么吧
♀ 小AD:没有,没有,哪有的事情
♂ 明世隐:我来给你修改一下
♀ 小AD:嗯嗯

public class LearnWhileDemo {

	public static void main(String[] args) {
		String duanwei = "黄金";
		int num=0;//开黑次数
		while(!"最强王者".equals(duanwei)){
			num ++;
			System.out.println("明哥带小鲁班上分,第"+num+"次");
			
			if(num>=20){
				break;
			}
		}
		
		System.out.println("带不动,明哥跑路了");
	}
}

运行一下:

明哥带小鲁班上分,第1次
明哥带小鲁班上分,第2次
明哥带小鲁班上分,第3次
明哥带小鲁班上分,第4次
明哥带小鲁班上分,第5次
明哥带小鲁班上分,第6次
明哥带小鲁班上分,第7次
明哥带小鲁班上分,第8次
明哥带小鲁班上分,第9次
明哥带小鲁班上分,第10次
明哥带小鲁班上分,第11次
明哥带小鲁班上分,第12次
明哥带小鲁班上分,第13次
明哥带小鲁班上分,第14次
明哥带小鲁班上分,第15次
明哥带小鲁班上分,第16次
明哥带小鲁班上分,第17次
明哥带小鲁班上分,第18次
明哥带小鲁班上分,第19次
明哥带小鲁班上分,第20次
带不动,明哥跑路了

♀ 小AD:明哥你怎么回事?
♂ 明世隐:跑路了。
♀ 小AD:啊这,不要啊明哥!

小结

这节总结了“ while 语句 ”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ 从零学Java系列目录索引
◄上一篇  20.switch case语句
►下一篇待更新     

热门专栏推荐

(1).Java小游戏(俄罗斯方块、飞机大战、植物大战僵尸等)
(2).JavaWeb项目实战(图书管理、在线考试、宿舍管理等)
(3).JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
(4).Java小白入门200例
(5).从零学Java、趣学Java
(6).Idea从零到精通

以上是关于从零学Java(21)之while 语句,小AD竟然想躺着上王者!的主要内容,如果未能解决你的问题,请参考以下文章

从零学Java(20)之switch case语句,小AD变身中路城管大队!

从零学Java之数据类型,小AD竟然solo不过小朋友

从零学Java之修饰符,小AD竟打起了钱的主意!

从零学Java(22)之do while 语句

从零学Java之搭建开发环境

从零学Java(19)之 if else分支结构详解,小AD要搞对面心态!