06.Java流程控制
Java流程控制
1、用户交互Scanner
Scanner 对象是Java给我们提供的一个实现程序和人交互的工具类,可以获取用户的输入。java.util.Scanner 是Java5 的新特征。
-
基础语法
- Scanner s = new Scanner(System.in);
通过Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取之前一般需要使用hasNext() 与 hasNextLine()判断是否还有输入的数据。
注:使用IO流的类如果不关闭会一直占用资源。要养成用完就关的好习惯。
-
next()
//·一定要读取到有效字符后才可以结束输入 //·对输入有效字符之前遇到的空白,next()方法会自动将其去掉 //·只有输入有效字符后才将输入的空白作为分隔符或者结束符 //·next()不能得到导演空格的字符串 package com.chao.scanner; import java.util.Scanner; public class Dome01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next()方式接收:"); //判断用户有无输入 if(scanner.hasNext()){ String str = scanner.next();//等待用户输入 System.out.println("输入的内容为:"+str); } //关闭scanner scanner.close(); } } -
nextLine()
//·以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符 //·可以获得空白 package com.chao.scanner; import java.util.Scanner; public class Dome02 { 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 scanner.close(); } }
2、顺序结构
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行;
顺序结构是最简单的算法结构;
他是任何一个算法都离不开的一种算法结构
3、选择结构
-
if单选择结构
if (布尔表达式){ //如果布尔表达式为true则执行代码 } -
if双选择结构
if (布尔表达式 1){ //如果布尔表达式为true则执行代码 }else{ //如果布尔表达式为false则执行代码 } -
if多选择结构
if (布尔表达式 1){ //如果布尔表达式1为真则执行代码 }else if (布尔表达式 2){ //如果布尔表达式2为true则执行代码 }else if (布尔表达式 3){ //如果布尔表达式3为true则执行代码 }else { //以上布尔表达式都不为ture则执行代码 } //for example package com.chao.struct; import java.util.Scanner; public class IfDome03 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int score = scanner.nextInt(); if (score == 100){ System.out.println("恭喜满分"); }else if (score >= 60 && score < 100){ System.out.println("恭喜及格"); }else if (score >= 0 && score < 60){ System.out.println("不及格"); }else{ System.out.println("成绩不合法"); } scanner.close(); } } -
嵌套的if结构
if (布尔表达式 1){ ///如果布尔表达式 1的值为true执行代码 if (布尔表达式 2){ ///如果布尔表达式 2的值为true执行代码 } } -
switch多选择结构
//switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支 //switch 语句中变量类型可以是byte、short、int、char。从Java SE 7 开始支持String类型 //case标签必须为字符串常量或者字面量 swith (expressin){ case value1 : //语句 break;//可选 case value2 : //语句 break;//可选 //可以有任意多个case语句 default ://可选 //语句 } //for example package com.chao.struct; public class SwitchDemo02 { public static void main(String[] args) { //JDK 7 的新特性,switch支持String类型 //字符的本质还是数字 //反编译 java --- class(字节码文件)----反编译(IDEA) String name = "狂神"; switch (name){ case "秦疆": System.out.println("秦疆"); break; case "狂神": System.out.println("狂神"); break; default: System.out.println("其他"); } } }
4、循环结构
-
while 循环
//先判断再执行,不满足则不执行 while(布尔表达式){ //循环内容 } //for example package com.chao.struct; public class WhileDemo02 { public static void main(String[] args) { int i = 0; int sum = 0; //输出1~100之和 while (i<=100){ sum += i;//sum = sum + i; i++; } System.out.println(sum); } } -
do while 循环
//先执行再判断,代码至少能执行一次 do { //代码语句 }while(布尔表达式); //for example package com.chao.struct; public class DoWhileDemo01 { public static void main(String[] args) { int i = 0; int sum = 0; //输出1~100之和 do { sum += i; i++; }while (i<=100); System.out.println(sum); } } -
for 循环
//for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构 for (初始化;布尔表达式;更新){ //代码语句 } //for example package com.chao.struct; public class ForDemo04 { public static void main(String[] args) { //九九乘法表 for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(j+"*"+i+"="+(j*i)+"\t"); } System.out.println(); } } } -
增强for循环
//java5引入了一种主要用于数组或稽核的增强型for循环。 for (声明语句:表达式){ //代码语句 } //for example package com.chao.struct; public class ForDemo05 { public static void main(String[] args) { int[] numbers = {10,20,30,40,50};//定义了一个数组 for (int i = 0; i < 5; i++) { System.out.println(numbers[i]); } System.out.println("======"); for (int x:numbers){ System.out.println(x); } //以上两种for效果一样 } }
5、 break & continue
-
break
//break再任何循环语句的主题部分,均可用break控制循环的流程。 //break用于强行退出循环,不执行循环中的剩余语句。 //for example package com.chao.struct; public class BreakDemo01 { public static void main(String[] args) { int i = 0; while (i <100){ i++; System.out.println(i); if (i == 30){ break; } } } } -
continue
//contiune语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否是否循环的判定。 //for example package com.chao.struct; public class ContinueDemo01 { public static void main(String[] args) { int i = 0; while (i < 100){ i++; if (i%10==0){ System.out.println(); continue; } System.out.print(i+"\t"); } } }
6、练习
-
打印三角形
package com.chao.struct; public class TastDemo01 { public static void main(String[] args) { //打印5行三角形 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(); } } }

浙公网安备 33010602011771号