Java流程控制
1. 用户交互Scanner
public class Scanner {//创建一个扫描对象,用来接收键盘数据Scanner scanner_input = new Scanner(System.in);System.out.print("请输入数据:");//判断用户有没有输入字符串if(scanner_input.hasNext()){String string_01 = scanner_input.nextLine();System.out.println("输出的内容为:" + string_01);}//凡是属于IO流的类如果不关闭会一直占用资源。要在使用之后关掉scanner_input.close;
}
public class Scanner_02{Scanner scanner_02_input = new Scanner(System.in);int number_i = 0;float number_f = 0.0f;if(scanner_02_input.hasNextInt()){number_i = scanner_02_input.nextInt();System.out.pritnln("您输入的整数是:" + number_i);}else{System.out.println("您出入的数据不是整数")}if(scanner_02_input.hasNextFloat()){number_f = scanner_02_input.nextFloat();System.out.println("您输入的小数是:" + number_f);}else{System.out.println("您输入的数据不是小数");}
}
public class Scanner_03 {Scanner scanner_03_input = new Scanner(System.in);int m = 0;double sum = 0;while(scanner_03_input.hasNextDouble){double x = scanner_03_input.nextDouble();m = m + 1; //m++ ++msum = sum + x;System.out.println("您出入了" + m + "个数,总和为" + sum)}double average_number = sum/m;System.out.println("输入的全部数据的总和:" + sum);System.out.pritnln("输入的全部数据的平均数" + average_number);//System.out.println("输入的全部数据的平均数:" + (sum/m));scanner_03_input.close;
}
2. 选择结构
1. if选择结构语法
if(布尔表达式){//如果布尔表达式为true 将执行的语句
}
if(布尔表达式){//如果布尔值为true
}else{//如果布尔值为false
}
if(布尔表达式1){//如果布尔表达式1的值为true执行代码
}else if(布尔表达式2){//如果布尔表达式2的值为true执行代码
}else if(布尔表达式3){//如果布尔表达式3的值为true执行代码
}else{//如果以上代码表达式的值都不为true执行代码
}
public class IF{Scanner scanner_If = new Scanner(System.in);System.out.pritnln("请输入您要输入的数据:");String string_0 = scanner_If.nextLine();if(string_0.equals("HelloWorld")){System.out.println(string_0);}scanner_If.close;
}
public class IF_02 {Scanner scanner_If = new Scanner(System.in);System.out.println("请输入您要输入的数据:");int number_0 = new scanner_If.nextInt();if(number_0 >= 60){System.out.println("本次考试成绩及格");}else if(number_0 < 60){System.out.println("本次考试成绩不合格");}scanner_If.close;
}
public class IF_03 {Scanner scanner_If = new Scanner(System.in);System.out.println("请输入您要输入的数据:");int number_0 = new scanner_If.nextInt();if(number_0 == 100){System.out.println("恭喜您本次考试成绩获得满分!")}else if(number_0 >= 90 && number_0 < 100){System.out.println("成绩为:A");}else if(number_0 >= 80 && number_0 < 90){System.out.println("成绩为:B");}else if(number_0 >= 80 && number_0 < 90){System.out.println("成绩为:C");}else if(number_0 >= 70 && number_0 < 80){System.out.println("成绩为:D");}else if(number_0 >= 60 && number_0 < 70){System.out.println("成绩为:E");}else (nunumber_0 < 60){System.out.println("很遗憾,本次考试成绩为不及格");}scanner_If.close;
}
2. switch多选择结构
switch(expression){case value ://语句break;case value ://语句break;case value ://语句break;default ://语句
}
switch语句中的变量类型可以是:
byte、short、int、char
String类型
public class Switch {char grade = 'C';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("挂科");default:System.out.println("位置");}
}
public class Switch_01 {// 字符的本质还是数字//反编译 java---class(字节码文件)---反编译(IDEA)String name = "kuangshen";switch(name){case "frank" :System.out.println("frank");break;case "kuangshen" :System.out.println("kuangshen");break;default:System.out.ptintln("干什么?")}}
3. 循环结构
循环结构需要的条件
初始化条件、条件判断、循环体、迭代
1. while
while是最基本的循环
while(布尔表达式){//循环内容
}
在正常的业务中要尽量避免死循环
public class while_0 {int i = 0;int sum = 0;while(i <= 100){sum = sum + i;i++}System.out.println(sum);
}
2. do...while循环
do {//代码语句
}while(布尔表达式)
3. For循环
for(初始化;布尔表达式;更新){//代码语句
}
关于For循环有以下几点说明:
最先执行初始化步骤,可以声明一种类型,但可以初始化一个或者多个循环控制变量,也可以是空语句
然后,检测布尔表达式的值。如果为true,循环体被执行,如果为false,循环终止,开始执行循环体后面的语句
执行一次循环后,跟新循环控制变量(迭代因子控制循环变量的增减)
再次检测布尔表达式的值,循环执行上面的过程
//用For循环求0-100以内的奇数跟偶数的和
public class For_0 {public void For_cycle(int i){int sum_o = 0;int sum_j = 0;for(;i <= 100; i++){if(i % 2 == 0){sum_o = sum_o + i;}else {sum_j = sum_j + i;}System.out.pritnln("0-100以内的偶数的和:" + sum_o);System.out.pritnln("0-100以内的奇数的和:" + sum_j);}}
}
//用For循环输出1-1000之间能被5整除的数,并且每行输出3个
public class For_1 {public void For_cycle(int i) {for(;i <= 1000;i++) {if(i % 5 == 0){System.out.println(i + "\t");}if(i % (5 * 3) == 0){Sysatem.out.println();//System.out.println("\n");}}}
}
//打印九九乘法表
public class For_2 {public void For_cycle(){for(int i = 1;i <= 9;i++){for(int j = 1;j <= i;j++){System.out.print(i + "\t" + "*" + j + " = " + (i*j));} System.out.println();//System.out.println("\n");}}
}
4. 增强For循环
//增强for循环
for(声明语句 : 表达式) {//代码语句
}
- 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方法
public class For_plus {//定义了一个数组int[] numbers = {10,20,30,40,50};for(int i = 0;i < 5;i++){System.out.println(numbers[i]);}//-------------------------------------------------------------------for(int x : numbers){System.out.println(x);}}
4. break,continue
break:在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环的其余语句。(break语句也在switch语句中使用)
public class Break_0 {public void break_0(){int i = 0;while(i < 100){i++;SYstem.out.println(i);if(i == 30){break;}}}
}
continue语句用在循环体语句中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
public class Continue_0{public void continue_0(){int i = 0;while(i < 100){i++;if(i % 10 == 0){System.out.println();continue;}System.out.println(i);}}
}
//打印三角形
public class Triangle {public void Triangle_0() {for(int i = 1;i <= 5;i++){for(int j = 5;j >= i;j++){System.out.println(" ");}for(int j = 1;j <= i;j++){System.out.println("*");}for(int j = 1; j < i;j++){System.out.println("*");}System.out.println();}}
}
//打印九九乘法表
public class NineNineTable {public void nineNineTable(){for(int j = 1;j <= 9;j++){ //两种思路 1.首先先写内层循环,在内层循环的基础上套上外层循环for(int i = 1;i <= j;i++){ // 2.先写外层循环,在外层循环内嵌套内层循环System.out.print(j + "*" + i + "=" + (j*i) + "\t");}System.out.pritnln();}}
}