java流程控制
if单选泽结构
代码如下:
package com.zhz.base.struct;
import java.util.Scanner;
public class ifDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
if(s.equals("hello")){ //如果键盘输入的字符串等于hello,默认为true。
System.out.println(s); //相等的话,输出s的内容
}
System.out.println("end");
scanner.close();
}
}
if 双选择结构
代码如下:
if(布尔表达式){布尔表达式值为true}else{布尔表达式为false}
package com.zhz.base.struct;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int i = scanner.nextInt();
if(i >60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
}
if多选择结构
代码如下:
package com.zhz.base.struct;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int i = scanner.nextInt();
if(i==100){
System.out.println("恭喜满分");
}else if(i<100 && i>=90){
System.out.println("A级");
}else if(i<90 && i>=80){
System.out.println("B级");
}else if(i<80 && i>=70){
System.out.println("C级");
}else if(i<70 && i>=60){
System.out.println("D级");
}else if(i<60 && i>=0){
System.out.println("不及格"); //严谨
}else{
System.out.println("成绩不合法"); //只会执行满足条件的一层
}
scanner.close();
}
}
总结:if语句至多有一个else语句,else必须在所有else if后面,一旦其中一个else if检测为true,其他else if,if语句都将跳过执行。
嵌套的if结构
在if中嵌套if,比如找1-100中的一个数,用二分法。
switch多选择结构
判断switch case语句中的一个变量与一系列中的某个值是否相等,每个值为一个分支。
代码如下:
switch支持字符串String类型了;
package com.zhz.base.struct;
import java.util.Scanner;
public class IfDemo04 {
public static void main(String[] args) {
/*
switch语法说明:
1、 表达式的类型只能为byte、short、char和int这4种之一。
2、 case后面的值1、值2…值n只能为常数或常量,不能为变量。
3、 break关键字的意思是中断,指结束switch语句,break语句为可选。
4、 case语句可以有任意多句,是标号语句。
5、 default语句可以写在switch语句中的任意位置,功能类似于if语句中的else.执行流程:
当表达式的值和对应case语句后的值相同时,既从该位置开始向下执行,一直执行到switch语句的结束,
在执行中,如果遇到break语句,则结束switch语句的执行。
*/
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符:");
char i = scanner.next().charAt(0); //使用scanner接受char类型字符的方法,charAt()方法可返回指定位置的字符;
switch (i) { //switch就是匹配一个值
case 'a':
System.out.println("孙尚香"); //a 结果是孙尚香
break;
case 'b':
System.out.println("钟馗"); //b 结果是钟馗,亚瑟
//不用break,会产生case穿透
case 'c':
System.out.println("亚瑟");
break;
case 'd':
System.out.println("项羽");
break;
default:
System.out.println("未知英雄");
}
scanner = new Scanner(System.in); //重新创建一个对象
System.out.println("请输入字符串:"); //我们在获取了int类型的数据后,再去获取String类型的值会获取不到,这时候我们可以重新new一个对象
String s = scanner.nextLine();
switch (s){
case "apple":
System.out.println("苹果");
break;
case "banana":
System.out.println("香蕉");
break;
}
}
}
项目源码:反编译 java文件--变成--class(字节码文件)--变成--反编译(IDEA),怎么把class文件,机器的文件反编译成人可读的文件。
scanner = new Scanner(System.in);
System.out.println("请输入字符串:");
String s = scanner.nextLine();
byte var5 = -1;
switch(s.hashCode()) {
case -1396355227:
if (s.equals("banana")) {
var5 = 1;
}
break;
case 93029210:
if (s.equals("apple")) {
var5 = 0;
}
}
switch(var5) {
case 0:
System.out.println("苹果");
break;
case 1:
System.out.println("香蕉");
}
方法是在project structure下找到文件路径,找到class字节码文件,在struct文件夹下右键open in explorer,把class文件拖入想要放得struct文件夹下,双击可以打开。
while循环
代码一:计算1~100的和
package com.zhz.base.struct;
public class WhileDemo02 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(i<=100){
sum+=i;
i++;
}
System.out.println(sum);
}
}
代码二:输出1~100
package com.zhz.base.struct;
public class WhileDemo01 {
public static void main(String[] args) {
int i = 0;
//输出1~100 while(true) 死循环,定时检查,一直连接
while(i<100){
i++;
System.out.println(i);
}
}
}
do while循环
对于while语句,不满足条件,不会进入循环(先判断后执行),但do while不满足条件,也至少会执行一次(先执行后判断);
package com.zhz.base.struct;
public class WhileDemo03 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
do{
sum+=i;
i++;
}while(i<=100);
System.out.println(sum);
}
}
for循环
for(初始化;布尔表达式;更新) for( ; ; )死循环
100.for 自动生成
for (int i = 0; i < 100; i++) {
}
代码一:
package com.zhz.base.struct;
public class ForWhile {
public static void main(String[] args) {
for(int i = 1;i<=100;i++){
System.out.println(i);
}
System.out.println("循环结束");
}
}
代码二:
package com.zhz.base.struct;
public class ForWhile {
public static void main(String[] args) {
for(int i = 1;i<=100;i++){
if(i%5==0){
System.out.println(i+"\t");
}
if(i%(5*3)==0){
//System.out.println(); //println()输出玩会换行
System.out.print("\n"); //print输出玩不会换行
}
}
}
}
嵌套的for循环做99乘法表
package com.zhz.base.struct;
import java.util.Scanner;
public class ChengFaBiao {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
for (int i = 1; i < 10; i++) {
for(int n =1;n <= i;n++){
System.out.print(i+"*"+n+"="+(i*n)+"\t");
//if(i==n)
//System.out.print("\n");
//System.out.println();
}
System.out.print("\n");
}
}
}