Java的流程管制
- 根底阶段 目录:
- 用户交互Scanner
- 程序构造
- 抉择构造
- 循环构造
- break & continue
- 练习题
1.Scanner对象
- 之前咱们学的根本语法中并没有实现程序和人的交互,然而Java给咱们提供了这样一个工具类,咱们能够获取用户的输出。Java.util.Scanner是Java5的新特色,咱们能够通过Scanner类来获取用户的输出。
- 根本语法:
Scanner s = new Scanner(System.in);
- 通过Scanner类的next()与nextLine()办法获取输出的字符串,在读取前咱们个别须要应用hasNext()与hasNextLine()判断是否还有输出的数据。
- next():
- 肯定要读取到无效字符后才能够完结输出。//必须要输出否则程序不进行
- 对输出无效字符之前遇到的空白,next()办法会主动将其去掉。//Hello World 只输入Hello因为有空格
- 只有输出无效字符才将其前面输出的空白作为分隔符或者结束符。/’/只有程序中有空格就完结’
- next()不能失去带有空格的字符串。
应用next()的例子:
package com.company.base;
import java.util.Scanner;
public class demo1 {
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);
}
scanner.close(); //IO流的用完记得关掉 占用内存 IO流就是输入输出流 和电脑替换信息的
}
}
-
nextLine()
- 以Enter为结束符,也就是说nextLine()办法返回的是输出回车之前的所有字符。
- 能够取得空白。
package com.company.base;
import java.util.Scanner;
public class demo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输出数据");
if(scanner.hasNextLine()){
String abc = scanner.nextLine();
System.out.println("输入:"+abc);
}
scanner.close();
}
}
- 判断整数与小数的scanner
package com.company.base;
import java.util.Scanner;
public class demo4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.println("请输出整数:");
//如果。。。那么。。。
if (scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("整数数据:"+ i);
}else {
System.out.println("输出的不是整数数据");
}
System.out.println("请输出小数");
if (scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数数据:"+ f);
}else {
System.out.println("输出的不是小数数据!");
}
scanner.close();
}
}
做一个繁难计算器
package com.company.base;
import java.util.Scanner;
public class demo5 {
public static void main(String[] args) {
//咱们能够输出多个数字,并求其总和与平均数,每一个数字用回车确认,通过输出非数字来完结输出并输入执行后果:
Scanner scanner = new Scanner(System.in);
//和
double sum = 0;
//计算输出了多少个数字
int m = 0;
//通过循环判断是否还有输出,并在外面对每一次进行求和和统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m = m+1;//m++
sum = sum + x;
System.out.println("你输出了第"+m+"个数据,而后点钱后果sum"+sum);
}
System.out.println(m +"个数的和为"+ sum);
System.out.println(m+ "个数的平均值是"+(sum / m));
scanner.close();
}
}
2.程序构造
- Java的根本构造就是程序构造,除非特地指明,负责就依照程序一句句执行。
- 程序构造是最简略的算法构造。
- 语句与语句之间,框与框之间是按从上到下的程序进行的,它是由若干个顺次执行的解决步骤组成的,它是任何一个算法都离不开的一种根本的算法构造。
那还没搞明确 那就给上面的RUN一下你就晓得了
package com.company.base;
public class demo6 {
public static void main(String[] args) {
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
System.out.println("6");
System.out.println("7");
System.out.println("8");
}
}
3.抉择构造(很重要的)
- if单抉择构造
- if双抉择构造
- if多抉择构造
- 嵌套的if构造
- switch多抉择构造
- if单抉择构造
- 咱们很多时候须要去判断一个货色是否可行,而后咱们才去执行,这样一个过程在程序中用if语句来示意
- 语法:
if(布尔表达式){
//如果布尔表达式为true将执行的语句,否则跳过
}
- if双抉择构造
- 须要两个判断时,就须要一个双选则构造,所以就有了if-else构造。
- 语法:
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
package com.company.ifdemo;
import java.util.Scanner;
public class if2 {
public static void main(String[] args) {
//考试分数大于60就是及格,小于60分就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输出问题:");
int score = scanner.nextInt();
if (score>60){
System.out.println("及格");
}else {
System.out.println("不及格");
}
}
}
- if多抉择构造
- 咱们发现方才的代码不符合实际状况,实在的状况还可能存在ABCD,存在区间多级判断。比方90-100就是A,80-90就是B等等。在生活中很多时候咱们的抉择也不仅仅就只有这两个,所以咱们须要一个多抉择构造来解决这类问题。
if(布尔表达式1){
//如果布尔表达式1的值为true执行代码
}else if(布尔表达式2){
//如果布尔表达式2的值为true执行代码
}else if(布尔表达式3){
//如果布尔表达式3的值为true执行代码
}else{
//如果以上布尔表达式都不为true执行代码
}
package com.company.ifdemo;
import java.util.Scanner;
public class if3 {
public static void main(String[] args) {
//考试分数大于60就是及格,小于60分就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输出问题:");
int score = scanner.nextInt();
/*
if语句至少有一个else语句,else语句在所有的else if语句之后。
if语句能够有若干个else if语句,它们必须在else语句之前。
一旦其中一个else if 语句检测为true,其余的else if以及else语句都将跳过执行
*/
if (score == 100) {
System.out.println("祝贺你 你失去了满分");
} else if (score < 100 && score >= 90) {
System.out.println("A级");
} else if (score < 90 && score >=80) {
System.out.println("B级");
} else if (score < 80 && score >= 70) {
System.out.println("C级");
}else if (score<70 && score>=60){
System.out.println("D级");
}else if (score<60 && score>=0){
System.out.println("不及格好好学习吧");
}
}
}
4. 嵌套的if构造
* 应用嵌套的if…else语句是非法的。也就是说你能够在另一个if或者else if语句中应用if或者else if语句。你能够像if语句一样嵌套else if…else。
* 语法
if(布尔表达式1){
//如果布尔表达式1的值为true执行代码
if(布尔表达式2){
//如果布尔表达式2的值为true执行代码
}
}
4.Switch多抉择构造
- 多抉择构造还有一个实现形式就是switch case语句。
- switch case语句能判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
-
switch语句中的变量类型能够是:
- byte、short、int、或者char
- 从Java SE 7 开始
- switch反对字符串String类型了
- 同时case 标签必须为字符串常量或者字面量。
Switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//你能够有任意数量的case语句
default://可选
//语句
}
第一个例子:
package com.company.jiaohuan;
public class JH {
public static void main(String[] args) {
//
char grade = 'A';
switch (grade){
case 'A':
System.out.println("优良");
break;//可选
case 'B':
System.out.println("良好");
break;//可选
case 'C':
System.out.println("及格");
break;//可选
case 'D':
System.out.println("再接再厉");
break;//可选
case 'E':
System.out.println("拉了兄弟");
break;//可选
default:
System.out.println("未知等级");
}
}
}
第二个例子:
package com.company.jiaohuan;
public class JH2 {
public static void main(String[] args) {
String name = "chb";
//JDK 7 新个性,表达式后果能够是字符串!!!
//字符的实质还是数字!!!
//反编译 java----class(字节码文件)---反编译(IDEA)
switch (name){
case "RAP":
System.out.println("RAP");
break;
case "整活":
System.out.println("整活");
default:
System.out.println("妹有啊");
}
}
}
5.循环构造
- while循环
while(布尔表达式){
//循环内容
}
* 只有布尔表达式为true,循环就会始终执行上来。
* 咱们大多数状况是会让循环停止下来的,咱们须要一个让表达式生效的形式来完结循环。
* 少部分状况须要循环始终执行,比方服务器的申请响应监听等。
* 循环条件始终为true就会造成有限循环【死循环】咱们失常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死解体!
package com.company.whiledemo01;
public class Whiledemo1 {
public static void main(String[] args) {
//输入1-100
int i = 0;
while (i < 5201314){
i++;
System.out.println(i);
}
}
}
计算1+2+。。+100
public class Whiledemo3{
public static void main(String[] args) {
//计算1+2+。。+100
int i = 0;
int sum = 0;
while (i<=100){
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
-
do…while循环
- 对于while语句而言,如果不满足条件,则不能进入循环。但有时候咱们须要即便不满足条件,也至多执行一次。
- do…while循环和while循环类似,不同的是,do…while循环至多会执行一次
do{
//代码语句
}while(布尔表达式);
- 应用do…while语句计算1+2+。。+100
package com.company.whiledemo01;
public class dowhiledemo1 {
public static void main(String[] args) {
int i = 0 ;
int sum = 0 ;
do{
sum = sum + i;
i++;
}while ((i<=100));
System.out.println(sum);
}
}
public class dowhiledemo2{
public static void main(String[] args) {
int a = 0;
while (a<0){
System.out.println(a);
a++;
}
System.out.println("===========");
do{
System.out.println(a);
a++;
}while (a<0);
}
- while和do…while的区别:
-
while先判断后执行,dowhile是先执行后判断!
- DO…while总是保障循环领会被至多执行一次!这是他们的次要差异。
- for循环
- 在Java5中引入了一种次要用于数组的增强型for循环
发表回复