之前我们学的基本语法中我们并没有实现程序和人的交互,但是 Java 给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
基本语法:
Scanner s = new Scanner(System.in);
通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要使用 hasNext() 与hasNextLine() 判断是否还有输入的数据。
next() 与 nextLine() 的区别
Java 的基本结构就是顺序结构,除了特别指明,否则就按顺序一句一句执行。
顺序结构是最简单的算法结构。
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
if 单选择结构
我们很多时候需要去判断一个对象是否可行,然后我们才去执行,这样一个过程在程序中用 if 语句来表示
语法:
if (布尔表达式) { //如果布尔表达式为 true 将执行的语句 }
if 双选择结构
如果 if 语句测试表达式的计算结果为 true,则该语句执行代码的特定部分。但是,如果测试表达式的计算结果为 false,则它不会执行任何操作。在这种情况下,我们可以使用可选 else 代码块。如果测试表达式的计算结果为 false,则执行块体内的 else 语句。这在Java中称为 if - else 语句。
语法:
if (布尔表达式) { //如果布尔表达式的值为true,执行该语句 } else { //如果布尔表达式的值为false,执行该语句 }
if 多选择结构
在生活中我们很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题,在 Java 中,有一个 if ... else ... if 阶梯语句,可用于在多个其他代码块之间执行其中一个代码块。
语法:
if (布尔表达式1) { //如果布尔表达式1的值为true,执行该语句 } else if (布尔表达式2) { //如果布尔表达式2的值为true,执行该语句 } else if (布尔表达式3) { //如果布尔表达式3的值为true,执行该语句 } else { //如果以上布尔表达式的值都不是true,执行该语句 }
if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。一旦其中一个 else if 语句的 布尔值为 true,其他的 else if 以及 else 语句都将跳过执行
嵌套的 if 结构
使用嵌套的 if...else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if或者 else if 语句。你可以像 if 语句一样嵌套 else if...else。
语法:
if (布尔表达式1) { //如果布尔表达式 1的值为true执行代码 if ((布尔表达式2) { //如果布尔表达式 2的值为true执行代码 } }
switch 多选择结构
多选择结构还有一个实现方式就是switch case 语句。
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
语法:
switch (布尔表达式) { case value: //语句 break;//可选 case value: //语句 break;//可选 //你可以有任意数量的case语句 default://可选 //语句 }
switch 语句中的变量类型可以是:
while 循环
while是最基本的循环,它的结构为:
while (布尔表达式) { //循环内容 }
只要布尔表达式为 true,循环就会一直执行下去。
我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
少部分情况需要循环一直执行,比如服务器的请求响应监听等。
循环条件一直为 true 就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死崩溃!
do...while 循环
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do...while 循环和 while 循环相似,不同的是,do...while 循环至少会执行一次。
语法:
do { //代码语句 } while (布尔表达式);
While和do—While的区别:
for 循环
虽然所有循环结构都可以用 while 或者 do...whil e表示,但 Java 提供了另一种语句— for 循环,使一些循环结构变得更加简单。
for 循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
for 循环执行的次数是在执行前就确定的。语法格式如下:
for (初始化; 布尔表达式; 更新) { //代码语句 }
关于 for 循环有以下几点说明:
在 Java5 中引入一种主要用于数组的增强型 for 循环
Java5 引入了一种主要用于数组或集合的增强型 for 循环。
Java 增强 for 循环语法格式如下:
for (声明语句 : 表达式) { //代码句子 }
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。