Java流程控制
1、用户交互Scanner
-
Java提供的工具类,来获得用户输入。java.util.Scanner是Java5的新特性,可以通过Scanner类来获得用户输入
-
基本语法:
Scanner scanner = new Scanner(System.in);
-
通过Scanner类的next()与nextline()方法获取输入的字符串,在读取前需要使用hasNext()与hasNextLine()判断是否还有输入的数据
-
next()方法
-
读到有效字符才能结束输入
-
对输入有效字符之前遇到的空格忽略
-
读到有效字符后的空格作结束符
-
next()不能得到带有空格的字符串
package edu.hqu.Scanner; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next方法接收:"); //判断用户有没有输入字符串 if(scanner.hasNext()){ //使用next方法接收 String str = scanner.next(); System.out.println("输出的内容为:"+ str); } //凡是属于IO流的类如果不关闭会一直占用资源 scanner.close(); //创建扫描器对象scanner,判断用户是否输入字符串,是则输出scanner.next()方法得到的内容,关闭扫描器对象 } }
-
-
nextLine()方法
-
以Enter作为结束符
-
可以获得空白
package edu.hqu.Scanner; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine方法接收:"); //判断是否还有输入 if(scanner.hasNextLine()){ String str = scanner.nextLine(); System.out.println("输出内容为:"+ str); } scanner.close(); } }
-
-
2、顺序结构
Java的基本结构就是顺序结构 从上到下依次执行
3、选择结构
-
if单选择结构
if(boolean){ //boolean为true }
-
if双选择结构
if(boolean){ //boolean为true }else{ //boolean为false }
-
if多选择结构
if(boolean1){ //boolean为true }else if(boolean2){ //boolean1为false且boolean2为true }else if(boolean3){ //boolean1为false且boolean2为false且boolean3为true }else{ //boolean1 boolean2 boolean3 都为false }
-
嵌套的if结构
if(boolean1){ //boolean1为true if(boolean2){ //boolean2为true } }
-
switch多选择结构
swtich case 语句判断一个变量与一系列值中的某个值是否匹配,每一个值成为一个分支
switch语句中变量类型可以是:
-
byte short int 或 char
-
从Java SE 7 开始 switch支持字符串String类型
-
case标签必须为字符串常量或字面量
switch(expression){ case value1: //语句 break;//case穿透 case value2: //语句 break; default: }
4、循环结构
-
while循环
while(boolean){ //boolean为true,循环一直走下去 }
大多数情况会让循环停止下来,需要一个让表达式失效的方法结束循环
-
do while循环
do{ //代码语句 }while(boolean)
即使不满足条件,也至少执行一次
while和do while的区别:while先判断后执行,do while先执行后判断
-
for循环
for(初始化;布尔表达式;更新){ //代码语句 }
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
练习一
//100以内奇数和 偶数和 int oddSum = 0; int evenSum = 0; for (int i = 0; i < 100; i++) { if(i%2!=0){ oddSum += i; }else { evenSum += i; } } System.out.println("100以内奇数和为:"+oddSum); System.out.println("100以内偶数和为:"+evenSum);
练习二
//用for循环输出1-100之间能被5整除的数,并且每行输出3个 for (int i = 1; i < 1000; i++) { if(i%5==0){ System.out.print(i+"\t"); } if (i%15==0){ System.out.println(); //System.out.print("\n"); } //println() 输出完换行 //print() 输出完不换行 }
练习三
//打印乘法表 for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++) { System.out.print(j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); }
-
增强for循环(foreach)
-
Java5 引入了一种主要用于数组或集合的增强型for循环
for(声明语句 : 表达式){ //代码语句 }
int[] array ={1,2,3,4,5}; for (int x:array) {//for(数组元素:数组) System.out.println(x);// 1 2 3 4 5 }
-
5、break & continue
-
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句
for (int i = 0; i < 10; i++) { System.out.println(i);// 0 1 2 3 4 5 if(i==5){ break; } }
-
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
for (int i = 0; i < 10; i++) { if(i%2==0){ continue; } System.out.println(i);//1 3 5 7 9 }