版权声明
- 本文原创作者:清风不渡
- 博客地址:https://blog.csdn.net/WXKKang
Java中的语法结构
Java中的基本语法结构有几种呢,下面就先来列举一下吧 ~ ~
- 顺序结构
- 选择结构
- 循环结构
1、顺序结构
我们都知道,对于我这样一个Java界的小学生来说,Java就好像是由一个单词一个单词,一句一句的“英文”组成的一片“文章’,那么既然是一片“文章”,当虚拟机运行它的时候就像是一个人在阅读这篇”文章“,一句话一句话的往下读,这样的话就好理解了
所谓的顺序结构,就是指程序按照语句的结构一条一条的执行,我们在使用这种语法结构的时候,只需将合法语句按照合理的执行顺序一 一排列好,就可以逐一执行了。
下面就是一个简单的小段Java代码,来形象的说明顺序语法结构:
public class Demo{
/*
原创作者:清风不渡
博客地址:https://blog.csdn.net/WXKKang
*/
public static void main(String[] args){
System.out.println("还有三天就是祖国母亲的七十周年纪念日了!");
System.out.println("我现在不想工作!");
System.out.println("不想学习!");
System.out.println("只想祝我伟大的祖国母亲生日快乐!");
}
}
运行效果:
我们可以看到,代码中的输出语句按照代码的顺序被逐一打印出来,它是有顺序的并且它的顺序就是编写的代码顺序,而这就是所谓的顺序语句结构,是不是很容易理解呢??
2、选择结构
我们可以联想一下,当程序执行Java代码的时候,就像是一个人在读一篇”文章“;那么,我们是否可以选择性的去读呢,如果我”喜欢“这段文章,我就去读这一段,如果我喜欢下下一段文章,那么我是否可以跳过这段文章去读那一篇我喜欢的文章呢?答案肯定是可以的嘛。
当然,程序去执行代码的时候肯定不是因为”喜欢“而去读取的哟,那是什么呢?肯定是”需要“呀,当程序需要执行这段代码的时候执行这段代码,它就会跳过不需要运行的代码,而选择自己需要运行的代码去运行他们,这样是不是方便了很多呢?
通过了我们的联想之后,我们来认真学习一下选择结构语句吧!
选择结构也叫分支结构,它可根据判断条件来选择需执行的分支,常用的分支结构有两种:
- if…else
通过if后的关系表达式进行判断,通常是一个二选一的分支 - switch…case
这是一个多路分支语句,根据选择值的不同,选择不同的分支进行执行
那么,现在我们就来认真学习它们吧,首先是if语句,一般情况下,它有三种写法,现在就来一 一学习吧:
(1)简单的if语句
(1)语法
if(判断条件){
如果符合条件执行的代码;
}
通俗的来说,就是当小括号内的判断条件满足(即结果为true)的时候,就执行大括号内的代码;如果小括号内的条件不满足(即结果为false)的时候,则跳过大括号内的代码,直接遵从顺序结构语句执行这段代码之后的代码
话不多说,我们直接上代码来使用一下它,思想就会变得很明朗了:
public class Demo{
public static void main(String[] args){
if(1>2){
System.out.println("这是if大括号内的代码");
}
System.out.println("这是if大括号外的代码");
}
}
运行之后我们会发现,if大括号内部的代码没有被执行,而是执行了下面的代码,这是为什么呢?显而易见,是因为1不大于2,所以小括号里的条件没有满足(即结果为false),这样就不会执行if大括号内的代码,而是直接跳过了这段代码。当我们把1>2改成1<2的时候,不只是if大括号外面的代码会执行,它里面的也会执行,这就是简单的if选择语句。
(2)if…else 语句
语法:
if(判断条件){
满足判断条件时执行的代码;
}else{
不满足判断条件时执行的条件;
}
有了上面的思想之后,这个语句就变得好理解了,不过是当满足判断条件的时候执行与if相对应的大括号里的代码,否则(也就是不满足判断条件)的时候执行与else相对应的大括号里的代码而已,废话不多说,咱直接上代码瞧瞧:
- if…else语句例子
public class Demo{
/*
原创作者:清风不渡
博客地址:https://blog.csdn.net/WXKKang
*/
public static void main(String[] args){
int i = 0;
if(i>2){
System.out.println("这是与if相对应的大括号里的内容");
}else{
System.out.println("这是与else相对应的大括号里的内容");
}
}
}
运行结果:
当程序运行之后,执行了与else对应的大括号里的内容,而与if对应的大括号里的内容则没有被执行,这是为什么呢?很显然是因为1不大于2嘛,这样,小括号里的判断语句没有满足(即为false),这样就跳过了与if对应的大括号里的内容,那么当小括号里的判断条件满足的话,会发生什么事呢?
通过上面的例子,我们更加理解了if…else选择语句,现在我们就可以根据需要写出一段具有两个分支的代码了,那么,当我们对于一件事的判断有几种情况的话,是不是就要写很多很多if…else语句呢?答案肯定的不是的呀,那么如何解决这个问题呢,在这种情况之下,我们的多分支if语句就横空出世了 ~ ~
(3)多分支if语句
让我们先来看看语法思考一下吧:
if(判断条件1){
满足判断条件1时执行的代码;
}else if(判断条件2){
满足判断条件2时执行的代码;
}else if(判断条件3){
满足判断条件3时执行的代码;
}else{
以上判断条件都不满足的时候执行的代码;
}
有了上面两种if语句的基础之后,我相信理解这一部分内容就不是事儿了,无非就是多加了几个判断条件实现多个选择嘛,理解了之后让我们来写个例子练习一下
- if多分支语句例子
小明周末的时间安排是周六看电影,周日去游乐场,写入如下程序:
public class Demo{
/*
原创作者:清风不渡
博客地址:https://blog.csdn.net/WXKKang
*/
public static void main(){
int day = 1;
if(day==6){
System.out.println("今天的天气真适合看电影");
}else if(day==7){
System.out.println("今天是要去游乐场玩哦");
}else if(day>=1&&day<=5){
System.out.println("今天不能去玩哦,要上课的");
}else{
System.out.println("地球上之后星期一到星期天哦");
}
}
}
那么,对于这个问题只能使用这种方法呢,肯定不是呀,我觉得Java是一个特别灵活的语言,同一个问题都有不同的方法去解决,那么,我们再学习一种多分支选择语句吧,那就是switch…case语句了
(4)switch…case语句
概念:switch…case语句提供多路分支,用于选择的数据类型可以是整数、Char、枚举类型。
switch(表达式){
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
...
default:
当得到的值上面都没有时执行的代码;
break;
}
switch语句特点:
- switch语句的选择类型支持数值,如byte、short、int、char。
- case与default之间的执行顺序:先判断所有的case,若没有匹配的case则执行default
- switch语句的停止条件是遇到了break关键字或者switch结束的大括号
- 如果匹配的case或者default没有break,那么程序将会继续向下执行,直到遇见break或着switch结尾结束
- case中的值必须与switch表达式的值具有相同的数据类型,而且case后跟的必须是常量而不能是变量
- break最好不要省略,不然将会出现:case穿透
注:没有default的switch语句是不规范或者是有问题的,最好不要这样写,或者说:所有的switch语句都要定义default分支
- break语句
在每个case分支之后,通常都要写break语句,这将跳出switch语句,否则的话程序会顺序执行,这就是所谓的case穿透
那么我们可以利用case穿透吗,当然是可以的,虽然它本义上是一个不好的现象,但是聪明的程序员会将任何有用的东西利用,这样,我们来写一个例子理解一下吧
例子:通过输入的月份数来判断是哪一个季度(2月、3月、4月为春季,5月、6月、7月为夏季,8月、9月、10月为秋季,11月、12月、1月为冬季)
正常情况下,我们是这样写的:
public class Demo {
/*
原创作者:清风不渡
博客地址:https://blog.csdn.net/WXKKang
*/
public static void main(String[] args) {
int month = 3;
switch (month) {
case 1:
System.out.println(month + "月是冬季");
break;
case 2:
System.out.println(month + "月是春季");
break;
case 3:
System.out.println(month + "月是春季");
break;
case 4:
System.out.println(month + "月是春季");
break;
case 5:
System.out.println(month + "月是夏季");
break;
case 6:
System.out.println(month + "月是夏季");
break;
case 7:
System.out.println(month + "月是夏季");
break;
case 8:
System.out.println(month + "月是秋季");
break;
case 9:
System.out.println(month + "月是秋季");
break;
case 10:
System.out.println(month + "月是秋季");
break;
case 11:
System.out.println(month + "月是冬季");
break;
case 12:
System.out.println(month + "月是冬季");
break;
default:
System.out.println("地球上只有十二个月哟");
break;
}
}
}
很多人觉得,哇这也太麻烦了吧,这么麻烦的话学这个还有什么意思,停停停,不是告诉你了嘛,聪明的程序员会将任何有用的东西利用(划重点),现在,我们就将case穿透利用起来,写一个比上面稍简单的代码来实现它吧。
利用了case穿透后的代码是这个样子的:
public class Demo {
/*
原创作者:清风不渡
博客地址:https://blog.csdn.net/WXKKang
*/
public static void main(String[] args) {
int month = 3;
switch (month) {
case 2:
case 3:
case 4:
System.out.println(month + "月是春季");
break;
case 5:
case 6:
case 7:
System.out.println(month + "月是夏季");
break;
case 8:
case 9:
case 10:
System.out.println(month + "月是秋季");
break;
case 11:
case 12:
case 1:
System.out.println(month + "月是冬季");
break;
default:
System.out.println("地球上只有十二个月哟");
}
}
}
这样子是不是就简单多了呢,所以说,任何事物都是有两面性的,虽然它是一个“事故”,但是,我们也可以将它利用起来呀,是不是觉得很有趣呢,当然,既然同样是选择,那么if语句是否也可以解决它呢,答案当然是可以的,大家一起动动脑吧 ~ ~,而我要去睡觉觉咯 ~ ~
我还是那个java界的小学生,一起努力吧!!
欢迎各位看官评论哟 ~ ~ 小生在此谢过了 ~ ~