版权申明
- 原创作者:是飘飘呀!
- 博客地址:https://blog.csdn.net/weixin_44216392
java语法的语句结构
Java语言是一种面向对象的编程语言,类是Java代码的基本创建方式,所有代码都将位于类定义中。
代码中有三种常见类型的语句:顺序结构语句、选择结构语句和循环结构语句;
顺序结构
顺序结构就是指程序按照语句的先后顺序一条一条地执行。使用这种结构只需要将合法语句按照合理的执行顺序排列好,即可逐一执行;
什么叫顺序执行呢?简单地来说就是从上往下,逐一执行,直到结束;我们先来看一个栗子?:
public class Test03 {
public static void main(String[] args) {
System.out.println("我希望有个如你一般的人");
System.out.println("如山间清爽的风");
System.out.println("如古城温暖的光");
System.out.println("从清晨到夜晚");
System.out.println("由山野到书房");
System.out.println("只要最后是你就好");
}
}
//执行结果
我希望有个如你一般的人
如山间清爽的风
如古城温暖的光
从清晨到夜晚
由山野到书房
只要最后是你就好
通过栗子我们可以看出,代码是一条一条的往下顺序执行的,这就是我们的顺序结构;是不是觉得很简单呢,那就对了;接下来我们看下一个有趣的语法结构;
选择结构
选择结构也叫分支结构,根据判断条件来选择执行的分支。
通俗的来讲就是根据需要来选择执行哪块程序;而不满足的也就是我们暂时不需要的部分代码就暂时不起作用了,这就是我们要了解的选择结构;
那我们常用的分支结构主要有if…else、switch…case:
单分支if()…else
通过if后的关系表达式进行判断,通常是一个二选一的分支,而条件表达式的结果是一个布尔值,要么为true,要么为false;
语法:
if(条件表达式){
//满足条件的执行
}else{
//不满足的条件执行
}
public class Test03 {
public static void main(String[] args) {
int a=3;
int b=4;
if(a<b) {
System.out.println("正确");
}else {
System.out.println("如果显示这句话,说明它反人类");
}
}
}
//输出结果:正确
多分支
如果有多个分支即多种情况,可以使用多个分支进行判断处理
语法:
if(判断条件1){
满足判断条件1时执行的代码块;
}else if(判断条件2){
满足判断条件2时执行语句;
}else if(判断条件3){
满足判断条件3时执行语句;
}else{
}
实例:
public class Test03 {
public static void main(String[] args) {
// 根据的成绩,进行评级,根据学生考试成绩划分ABCDF。
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的成绩:");
int score = scan.nextInt();
if (score <= 100 && score >= 0) {
if (score >= 0 && score < 60) {
System.out.println("F");
} else if (score >= 60 && score < 70) {
System.out.println("D");
} else if (score >= 70 && score < 80) {
System.out.println("C");
} else if (score >= 80 && score < 90) {
System.out.println("B");
} else if (score >= 90 && score <= 100) {
System.out.println("A");
}
} else {
System.out.println("请输入0-100之间的数");
}
scan.close();
}
}
运行结果根据输入的值进行不同的选择去执行;这就是分支结构;当然,在以后的开发过程中,if分支结构用的很多,这就属于个人的业务逻辑范畴啦;在这里我是用到了if…else的嵌套,实际上在开发过程中,多重嵌套是完全有可能的,所以各位童鞋看到了这里,就要多多练习分支语句的使用哦;
switch…case
switch…case提供多路分支,用于选择也就是switch后面的表达式的数据类型可以是整数、Char、枚举类型、String;主要用于多选一的分支;语法:
switch(表达式) {
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
......
default:
执行语句;
break;
}
**执行流程:**先计算表达式的值,再去和case后面的取值匹配,如果匹配成功则执行所匹配的分支那一部分代码;如果没有匹配到,则执行default控制的语句;
switch语句的特点:
- switch选择的类型支持数值,如:byte、short、int、char
- case与default的执行顺序:先去判断所有的case,如果没有匹配的值,则执行default语句;
- switch语句的停止条件是遇到了break关键字或者switch语句的结束大括号
- 如果匹配的case或者default没有对应的break,那么程序会继续向下执行语句,直到遇到break或者switch结尾结束
- switch case中的值必须要与switch表达式的值具有相同的数据类型。而且case后跟的值必须是常量,不能跟变量
- case一般都要和break搭配使用,没有特别的需求的话最好不要省略,不然会出现case穿透;
那如何用switch…case分支语句呢?我们看一下下面这个简单的栗子:
int i = 0;
switch (i) {
case 1:
System.out.println("Case 1");
break;
case 2:
System.out.println("Case 2");
break;
default:
System.out.println("默认处理");
break;
//执行结果
/*
* 默认处理
* 表达式没有匹配到对应的case,所以执行了default里面的语句
* /
}
char 类型在switch 中的使用,实现加减乘除四则运算;
public static void main(String[] args) {
int x = 3, y = 4;
char c = '*';
switch (c) {
case '+':
System.out.println("x+y=" + (x + y));
break;
case '-':
System.out.println("x-y="+(x-y));
break;
case '*':
System.out.println("x*y="+(x*y));
break;
case '/':
System.out.println("x/y="+(x/y));
break;
default:
System.out.println("算术符号错误");
break;
}
/*
*执行结果:x*y=12
*/
而我们知道,如果case后面不加上break的话会造成case穿透,但是某些时候我们可以合理的利用这个case穿透,例如:判断某个月份为什么季节,我们都知道一年12个月分为四个季节,那么我们就可以使用case穿透来实现这个功能;
public class Test{
public static void main(String[] args) {
int x = 3;
switch (x) {
case 2:
case 3:
case 4:
System.out.println("spring");
break;
case 5:
case 6:
case 7:
System.out.println("sunmer");
break;
case 8:
case 9:
case 10:
System.out.println("autumn");
break;
case 11:
case 12:
case 1:
System.out.println("winter");
default:
System.out.println("ok");
break;
}
}
}
switch和if的比较
看起来switch和if有些相似,那么我们在具体情况应该如何判断使用哪个呢?
- 如果判断的具体数值不多,而是符号byte、short、int、char四种类型,虽然2个语句都可以使用,建议使用switch语句,因为效率稍高
- 对区间或范围的判断,使用if。if的使用范围更广,除了能判断具体数值还能判断区间。switch 判断区间会很费劲的,根据情况的不同要写不同数量的case,稍微麻烦;作为程序员,能简洁的就肯定会简洁一点啦;
- 对结果为boolean类型的判断,使用if。switch 是不能实现的;
- 在JDK5中对switch增加了对枚举的判断,JDK7中增加对switch字符串判断;
最后
写这篇文章的时间稍微长了点,主要是学习压力太大啦!哈哈,9号就在起草了,终于趁着今天休息把它补全了;如果有不准确的地方,希望大家多多指正啦!
大家早点休息!晚安!