# Java学习记录(流程控制1)

​ 世界上几乎任何事物的处理流程都可以拆分成三种基本结构:顺序结构、选择结构、循环结构。

​ Java中的基本语法结构也是这三种。

顺序结构

​ Java中的顺序结构即可以理解为,程序都是自上而下,依次执行的。

例如:

public class sequence_learning1 {
    public static void main(String[] args) {
        System.out.println("敢");//1
        System.out.println("杀");//2
        System.out.println("我");//3
        System.out.println("的");//4
        System.out.println("马");//5
        System.out.println("!");//6
    }
}

​ 最终结果一定是按着123456自上而下的顺序输出的。如下:

img

​ 只要不出什么bug,或者写入别的语句结构,程序都是按照自上而下,逐句执行的。

所以这个结果就不可能是:

也不可能是:


选择结构

if 选择结构

if选择结构有三种:单选择、双选择、多选择。


if单选择结构

语法格式为:

​ if(判断有条件)

​ {

条件成立后需要执行的语句

​ }

if单选择流程框图

如:

public class sequence_learning1 {
    public static void main(String[] args) {
       int a=60;
       if (a==60)
       {
           System.out.println("老六");
       }
    }
}

​ 由于a==60成立,所以最终将会执行if下面的语句 System.out.println(“老六”);

则结果为:

在这里插入图片描述

​ 如果将上述代码修改,让判断条件不成立,则:

public class sequence_learning1 {
    public static void main(String[] args) {
       int a=59;
       if (a==60)
       {
           System.out.println("老六");
       }
    }
}

​ 将a=60改为a=59则a==60的条件就不成立了。结果为:

在这里插入图片描述

​ 由于条件不成立,所以 System.out.println(“老六”); 就不会执行了。


if双选择结构

if双选择结构就是if else语句。

其语法格式为:

if(判断条件)

{

条件成立执行的语句

}

else

{

条件不成立执行的语句

}

if双选择流程框图

如:

public class sequence_learning1 {
    public static void main(String[] args) {
       int a=60;
       if (a==60)
       {
           System.out.println("老六");
       }
       else{
           System.out.println("老B登");
       }
    }
}

这个是条件成立的情况,最终一定会执行 System.out.println(“老六”); 这句代码。

在这里插入图片描述

当条件不成立时,就会执行else后的那段代码:

如:

public class sequence_learning1 {
    public static void main(String[] args) {
       int a=59;
       if (a==60)
       {
           System.out.println("老六");
       }
       else{
           System.out.println("老B登");
       }
    }
}

由于a=59,所以a=60这个条件不成立,所以 System.out.println(“老六”); 就不会执行。

转而执行 else 所对应的代码段。即 执行 System.out.println(“老B登”); 这段代码。

最终输出结果为:

在这里插入图片描述


if多选择结构

if多选择结构就是 if … else if…else if…else if…else 语句。

其语法格式为:

if(判断条件1)

{

判断条件1成立后执行的语句

}

else if(判断条件2)

{

判断条件2成立后执行的语句

}

else if(判断条件3)

{

判断条件3成立后执行的语句

}

else if(判断条件n)

{

判断条件n成立后执行的语句

}

else

{

判断条件1~n都不成立后执行的语句

}

if多选择流程框图

如:

public class sequence_learning1 {
    public static void main(String[] args) {
       int a=56;
       if (a==60)
       {
           System.out.println("老六");
       }
       else if(a==59){
           System.out.println("老B登");
       }
       else if(a==58){
           System.out.println("MAGA");
       }
       else if(a==57){
           System.out.println("777");
       }
       else{
           System.out.println("金坷垃!");
       }
    }
}

这段代码最终无疑会输出 金坷垃!

因为赋给a的值为56,不在上述任何判断条件中,即上述判断条件都不成立,所以只会执行else后的语句。

在这里插入图片描述

其实最终可以不用else结尾,也可以用else if结尾,程序依然可以运行。只不过else if后面必须写一句 判断条件

如:

public class sequence_learning1 {
    public static void main(String[] args) {
       int a=56;
       if (a==60)
       {
           System.out.println("老六");
       }
       else if(a==59){
           System.out.println("老B登");
       }
       else if(a==58){
           System.out.println("MAGA");
       }
       else if(a==57){
           System.out.println("777");
       }
       else if(a<57||a>60){
           System.out.println("金坷垃!");
       }
    }
}

最终依然会输出 金坷垃!

在这里插入图片描述

a<57||a>60的意思是:a小于57或者a大于60

上述a的值为56刚好满足a<57的条件,所以就会执行 System.out.println(“金坷垃!”); 这段代码。

通过比较可以发现,用else结尾和用else if结尾都可以正确输出结果。但是用else结尾,就不需要再描述判断条件了。

而else if结尾,一定需要把其他条件均不成立下,最终的一个条件描述出来。如本例描述的最终条件就是a<57||a>60

所以如果遇见不好描述的条件,那么else if就不好发挥其作用了。

所以,还是推荐用else作为结尾。

但是用else,也需要满足下列条件:

  1. if语句最多只有1个else语句。else语句在所有else if 语句之后。
  2. if语句可以有n个else if 语句,它们必须在else 语句之前。
  3. 一旦n个else if 语句中有一个的判断条件成立,即为true,那么其他(n-1)个else if 以及else语句都将跳过,而不执行。只会执行那个判断条件成立的语句所对应的代码段。

其实如果用else if结尾,那么他的唯一一个好处就是如下:

public class sequence_learning1 {
    public static void main(String[] args) {
       int a=56;
       if (a==60)
       {
           System.out.println("老六");
       }
       else if(a==59){
           System.out.println("老B登");
       }
       else if(a<57||a>60){
           System.out.println("金坷垃!");
       }
       else if(a==58){
           System.out.println("MAGA");
       }
       else if(a==57){
           System.out.println("777");
       }
       
    }
}

我将之前作为结尾的那段else if语句放在了中间,依然不影响代码的结果。

在这里插入图片描述

最终还是会输出 金坷垃!

所以else if的唯一“好处”就是任意一个所有的else if 语句都可在if 语句后,任意排序。

所以,就是没有位置的要求。

但是这是否是一个好处,我并不下定论。

我也不建议这样做。

因为代码本就是有逻辑,有顺序的。

条理清晰的代码,更方便我们理解,阅读!所以我依然推荐用else进行结尾。

如果你一定要用else if结尾,想把最终条件清楚的描述出来,我也建议一定不要将else if语句任意排序,而是一定要按照正常的逻辑顺序,依次排列。

让我们的代码,读起来更方便!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值