一、用户交互Scanner
scanner对象
通过java.util.Scanner类来获取用户的输入。
基本语法:
Scanner s = new Scanner(System.in); s.close();//对于IO流,用完就要关闭
通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要用hasNext()与hasNextLine()判断是否还有输入数据。
- next():
- 一定要读取到有效字符后才可以结束输入。
- 以有效字符后的空白作为分隔符或结束符,不能得到带有空格的字符串
- nextLine():
- 是以Enter键作为结束符,可以获得空白。
示例:
1、next()和hasNext()
2、hasNext()和hasNextLine()
3、 进阶使用
二、顺序结构
程序从上到下依次执行
三、选择结构
- if 单选择结构
if (布尔表达式){
//如果布尔表达式为true将执行的语句
}
- if 双选择结构
if (布尔表达式){
//如果布尔表达式为true将执行的语句
}else{
// 如果布尔表达式的值为false
}
- if 多选择结构(匹配一个范围)
示例:
- 嵌套的if结构
5. switch多选择结构(匹配一个具体的值)
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch语句中的变量类型可以是:
- byte、short、int或char
- 从 JavaSE 7 开始,还支持String 类型
- 同时case 标签必须为字符串常量或字面量
示例:
4、循环结构
- while循环
- 只要布尔表达式为true,循环就会一直执行下去
- 大多数情况是会让循环停止的,需要一个表达式失效的方式来结束循环。避免死循环。
- 少部分情况需要一直循环,比如服务器的请求响应监听等 示例:
- do...while循环
-
对于while语句,不满足条件就不能进入循环,然而do...while循环至少会执行一次
-
while的do...while的区别:
- while:先判断后执行
- do...while:先执行再判断
示例:
3. for 循环
-
for循环是最有效、最灵活的循环结构
-
执行的次数是在执行前就确定的。
-
说明:
- 最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可是空语句。
- 然后检查布尔表达式的值,如果为true,循环体执行,false循环终止。
- 执行一次循环后,更新循环控制变量,再检查布尔表达式,迭代。
示例:
练习1:计算0到100间的奇数和偶数的和
练习2:用while或for 循环输出1-1000间能被5整除的数,并且每行输出3个
结果:
练习3:打印99乘法表
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++)
{
System.out.print(j +" * " + i +" ="+ i*j+"\t");
}
System.out.println();
}
结果:
- 增强for循环
- 先了解,在之后数组重点使用
- Java5引入的一种主要用于数组或集合的增强型for循环
示例如下:
5、break & continue
- break 终止循环
- continue 用于终止某次循环,执行后续的循环
6、练习
//打印五行三角形
for (int i = 1; i <= 5; i++){
for(int j = 5; j >= i; j--){
System.out.print(" ");
}
for(int j = 1; j <= i; j++){
System.out.print("*");
}
for(int j = 1; j < i; j++){
System.out.print("*")
}
System.out.println();
}
运行结果: