1.顺序结构
java顺序结构: 就是按照Java默认执行顺序,即主方法中代码从上往下执行代码。
2.选择结构
2.1 if结构
一个 if 语句包含一个布尔表达式和一条或多条语句。
格式:
1 if(布尔表达式){ 代码体 }
满足才执行
2 if(布尔表达式){ 代码体1 }else { 代码体2 }
2选1
3 if (布尔表达式 1) { 代码体1 } else if( 布尔表达式2) { 代码体2 }......else{ 代码体n }
多选一
4 if ( 布尔表达式外 ){
if(布尔表达式内){
嵌套代码体yes
}else{
嵌套代码体no
}
}
在满足第一项的同时才能继续进行
代码例:
//当前分数85
int nowScore = 85;
//满分100
if (nowScore > 100) {
System.out.println("成绩异常的高");
}else if (nowScore <= 100 && nowScore >= 85) {
System.out.println("成绩等级: A (优秀)");
}else if (nowScore < 85 && nowScore >= 75) {
System.out.println("成绩等级: B (良好)");
}else if (nowScore < 75 && nowScore >= 60) {
System.out.println("成绩等级: C (及格)");
}else if (nowScore < 60 && nowScore >= 0) {
System.out.println("成绩等级: D (不及格)");
}else {
System.out.println("成绩异常的低");
}
2.2switch结构
swich也是多选一,不同的是 swich中会查询匹配(本人的理解)
swich变量支持的类型:
byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
switch中breack特点:
匹配成功后,执行代码体,当遇到break时,会终止switch语句。如果没有breack语句,那么程序会继续执行下一个case语句 ,不会进行匹配直接执行case中的代码体,直到break语句的出现。
结构:
switch(匹配变量、值){
case value1:
代码体1
[ break;]
case value2:
代码体2
[ break;]
.....
default :
默认执行体(匹配不到)
[break]
}
代码:(简单的计算机)
Scanner inScanner = new Scanner(System.in);
boolean clonsef = true;
do {
double num1;
double num2;
double res;
System.out.println("这是一个简单的(+、-、*、/)运算器");
System.out.println("加法运算请输入 --- 1");
System.out.println("减法运算请输入 --- 2");
System.out.println("乘法运算请输入 --- 3");
System.out.println("除法运算请输入 --- 4");
System.out.println("退出 --- 0");
System.out.println("请输入要进行的操作");
int op = inScanner.nextInt();
System.out.println("----------------");
switch (op) {
case 1 :
System.out.println("请输入第一个数字");
num1 = inScanner.nextDouble();
System.out.println("请输入第二个数字");
num2 = inScanner.nextDouble();
res = num1 + num2;
if (res == (int)(num1 + num2)) {
System.out.println( num1 + " + " + num2 + " = " + (int) res);
}else{
System.out.println(num1 + " + " + num2 + " = " + res );
}
break;
case 2 :
System.out.println("请输入第一个数字");
num1 = inScanner.nextDouble();
System.out.println("请输入第二个数字");
num2 = inScanner.nextDouble();
res = num1 - num2;
if (res == (int)(num1 - num2)) {
System.out.println(num1 + " + " + num2 + " = " + (int) res);
}else{
System.out.println(num1 + " + " + num2 + " = " + res);
}
break;
case 3 :
System.out.println("请输入第一个数字");
num1 = inScanner.nextDouble();
System.out.println("请输入第二个数字");
num2 = inScanner.nextDouble();
res = num1 * num2;
if (res == (int)(num1 * num2)) {
System.out.println(num1 + " x " + num2 + " = " + (int) res);
}else{
System.out.println(num1 + " x " + num2 + " = " + res);
}
break;
case 4 :
System.out.println("请输入第一个数字");
num1 = inScanner.nextDouble();
System.out.println("请输入第二个数字");
num2 = inScanner.nextDouble();
if (num2 == 0) {
System.out.println("被除数不能为零");
break;
}
res = num1 / num2;
if (res == (int)(num1 / num2)) {
System.out.println(num1 + " ÷ " + num2 + " = " + (int) res);
}else{
System.out.println(num1 + " ÷ " + num2 + " = " + res);
}
break;
case 0 :
System.out.println("谢谢使用~bye");
inScanner.close();
clonsef = false;
break;
default:
System.out.println("请按照要求输入指定的操作");
break;
}
System.out.println('\n');
} while (clonsef);
3.循环结构
3.1for语句
特点: 考虑循环次数
格式:for(初始条件;判断条件;自增/自减){ 循环体 }
例子:(输出1-10的数字)
for (int i = 1; i <= 10; i++) {
System.out.println("通过for输出1-10 :"+i);
}
3.2while语句
特点: 不考虑循环次数
格式 : while(布尔表达式){ 循环体 }
例子(输出10-20)
int x = 10;
while(x <= 20){
System.out.println("循环输出10-20 ---" + x );
x++;
}
3.3do...while语句
特点: 不考虑循环次数,并且相比较于while 先执行先判断 默认先执行一次
格式: do{ 循环体 }while(布尔表达式);
例子:(统计未成年的年龄)
// 数组中满足条件数字的个数
//统计未成年人的个数
int age [] = {25,30,25,18,16,19,10,60,26,23,9,5,12,14,16,25};
int num = 0;
int index = 0;
//数组的下标
do {
if (age[index] < 18) {
num+=1;
}
index++;
} while (age.length > index);
4.break和continue语句的用法;
break语句---循环中就表示中断循环的执行
如果循环是嵌套的,那么break语句出现在那一层就中断那一次的循环。
continue语句--往往出现在循环中表示结束当前循环,继续下一次循环执行。
无奈源于不够强大