顺序结构
Java的基本结构就是顺序结构
最简单的算法结构
语句与语句之间,由上到下顺序进行,
任何算法都离不开的基本算法结构
package com.Shelton.struct;
public class Order {
public static void main(String[] args) {
System.out.println("hello1");
System.out.println("hello2");
System.out.println("hello3");
System.out.println("hello4");
}
}
/*
hello1
hello2
hello3
hello4
*/
选择结构※
if单选择结构
if双选择结构
if多选择结构
嵌套的if结构
switch多选择结构
if单选择结构
判断一个东西是否行,然后才会去执行
语法
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
例子
package com.Shelton.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();//为了原样输出
//equals判断字符串是否相等,不要用"=="来判断字符串
if (s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
/*
请输入内容:
Hello
Hello
End
*/
/*
请输入内容:
hello
End
*/
if双选择结构
语法
if (布尔表达式){
//如果布尔表达式值为true执行的语句
}else{
//如果布尔表达式值为false执行的语句
}
例子
package com.Shelton.struct;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
/*
考试分数大于60及格,小于60不及格
*/
int i = 60;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
if (scanner.nextDouble()>=60){//定义一个变量把scanner.nextDouble的值赋给它
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
}
/*
请输入成绩
61
及格
*/
/*
请输入成绩
59
不及格
*/
改进
package com.Shelton.struct;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
Float score = scanner.nextFloat();
if (score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
}
}
/*
请输入成绩
59.9
不及格
*/
if多选择结构
if语句至多有一个else,在所有else if语句之后
if语句可以有若干个elseif,他们必须在else语句之前
一旦其中一个else if为true,其余的else if和else语句都不执行
语法
if (布尔表达式 1){
//如果布尔表达式1值为true执行的语句
}else if(布尔表达式 2){
//如果布尔表达式2值为true执行的语句
}elseif(布尔表达式 3){
//如果布尔表达式3值为true执行的语句
}else{
//如果以上布尔表达式值都为false执行的语句
}
例子
package com.Shelton.struct;
import java.util.Scanner;
public class IfDemo04 {
public static void main(String[] args) {
//成绩评级
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
Float score = scanner.nextFloat();
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("成绩不合法");
}
scanner.close();
}
}
/*
请输入成绩
120
成绩不合法
*/
/*
请输入成绩
66
D级
*/
if嵌套结构
语法
if (布尔表达式1){
//如果布尔表达式1值为true执行的语句
if (布尔表达式2){
//如果布尔表达式2值为true执行的语句
}
}
思考
package com.Shelton.struct;
import java.util.Scanner;
public class IfDemo05 {
public static void main(String[] args) {
//在1~100之间顺找一个整数
Scanner scanner = new Scanner(System.in);
int i = 1;
System.out.println("请想一个1~100数");
while (i<=100){
System.out.println("这个数是否大于"+i);
String a = scanner.next();
if (a.equals("y")||a.equals("Y")){
++i;
}else{
System.out.println("这个数是"+i);
i = i + 100;
}
}
}
}
/*
请想一个1~100数
这个数是否大于1
Y
这个数是否大于2
Y
这个数是否大于3
Y
这个数是否大于4
Y
这个数是否大于5
N
这个数是5
*/
Switch多选择结构
匹配一个具体的值
语法
switch (expression){
case value :
//语句
break;//可选
case value :
//语句
break;//可选
default :
//语句
}
语句中的变量类型
byte、short、int或者char
从JavaSE7开始,switch支持字符串String类型
case标签必须为字符常量或字面量
例子
package com.Shelton.struct;
public class SwitchDemo01 {
public static void main(String[] args) {
char grade = 'C';
switch(grade){
case 'A':
System.out.println("优秀");
break;//没有会出现case穿透,所以每个case后都应加上case
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("未知等级");
}
}
}
//及格
case穿透现象
package com.Shelton.struct;
public class SwitchDemo01 {
public static void main(String[] args) {
char grade = 'C';
switch(grade){
case 'A':
System.out.println("优秀");
case 'B':
System.out.println("良好");
case 'C':
System.out.println("及格");
case 'D':
System.out.println("再接再厉");
case 'E':
System.out.println("挂科");
default:
System.out.println("未知等级");
}
}
}
/*
及格
再接再厉
挂科
未知等级
*/
从JavaSE7开始,switch支持字符串String类
package com.Shelton.struct;
public class SwitchDemo02 {
public static void main(String[] args) {
String name = "Hello World!";
switch (name){
case "Hello World!":
System.out.println("Hello World!");
break;
case "Hello":
System.out.println("Hello");
break;
case "World":
System.out.println("World");
break;
default:
System.out.println("!");
}
}
}
拓展——查看源码方法
字符的本质还是数字
反编译 java---->class(字节码文件) 源码
工具(IDEA)
点开项目结构
找到class文件路径
打开找到该文件的class文件,但class文件直接打不开
在idea中打开类目录
将字节码文件复制进去
IDEA中会出现相应class文件,打开