015 if switch语句
if语句
单选择
package com.kuang.struct;
import java.util.Scanner;
public class IfDemo01 {
//判断输入的是不是Hello,如果是,打印Hello和End,如果不是,打印End,是一种单选择结构
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容: ");
String s = scanner.nextLine();
if(s.equals("Hello")){ //此equals和==有区别
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
双选择结构
package com.kuang.struct;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
//考试大于60 及格 否则不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩: ");
int score = scanner.nextInt();
if(score>=60){
System.out.println("及格");
}else {
System.out.println("不及格");
}
scanner.close();
}
}
多选择结构
package com.kuang.struct;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
//if多选择结构
/*
if语句至多有一个else语句,且在所有的else if语句之后
if语句可以有若干个else if语句,必须在最后面那个else语句之前
* */
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩: ");
int score = scanner.nextInt();
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("不及格");//不及格的范围也要规定
}else {
System.out.println("输入的不正确");//防止输入的分数出现负数,大于100分的数,包括所有的其他情况,但是不包括输入字母的情况
}
scanner.close();
}
}
嵌套的if结构
所有的流程控制语句都可以相互嵌套互不影响
思考题:寻找一个数字,在1-100之间。如果用普通的逐个查找的方法效率低下,如果用二分法去查找可以节省大量时间,这里主要突出算法的优势。
假设0-100之间任意一个数字,通过几次判断可以得到最终这个数字?
每次判断就是把0-100的范围折半,最后问题变为2的多少次方等于100,2的7次方等于128,是不是可以说不超过7次判断就能查找到这个数字?
- 100/2
- 50/2
- 25/2
- 25/2/2
for (int j = 0; j < 10; j++) {
int mid=(left+right)/2;//中间位置索引
//每次用目标值和中间值做对比
//目标值大于中间值
if (randonNum>array[mid]){
//改变其实位置,起始位置等于mid+1,
也就是从中间位置往右诺一位
left=mid+1;
}
//目标值小于中间语句
if(randonNum<array[mid]){
right=mid-1;
}
//目标值等于中间语句
if(randonNum==array[mid]){
str="恭喜猜中了,目标值为"+array[mid]
+"循环次数为"+j+"次";
break;//出结果就结束循环
}
}
switch 结构
package com.kuang.struct;
import java.util.Scanner;
public class SwitchDemo1 {
public static void main(String[] args) {
System.out.println("请输入成绩等次");
Scanner scanner = new Scanner(System.in);
String grade = scanner.next();//从jdk7开始switch支持字符串,但是字符的本质是数字
//如果直接反编译输入数字也可以
//如果case后面没有加break,会出现case穿透现象,输出匹配的case及其后面的ca1se
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("未知的输入");
}
}
}
idea实现反编译的方法,用IDEA打开某个java文件,然后点击“工程结构”图标,找到字节码class文件,然后在java源码文件夹中,放置此字节码文件,IDEA即可识别,双击打开此class文件即可,右键选中相应的java源文件可以并列显示,方便对比
【从善如登,从恶如崩】