《Java从入门到放弃》JavaSE篇:程序结构

程序的结构一般分为三种:

  1. 顺序结构。

  2. 选择结构。

  3. 循环结构。

 

一、顺序结构:这个不用多说吧,跟我们平时写文章的顺序一样,从上往下。

wKioL1mf0MqwRCa0AAA_SnPBxrY664.png

 

二、选择结构:从名字就能看出,要选择嘛,到底是要漂亮滴妹子,还是要有钱滴妹子呢!当然,如果是个吊丝码农滴话,那你就不要多想了,还是老老实实码代码吧···

wKiom1mf0RTRSGADAAAuZCa1e_E965.png

三、循环结构:循环啊,就是一直转啊转啊转啊,转到出意外为止。

wKioL1mf0e3AN0FBAAAyQfKQ-vM590.png

 

 

接下来还是老规矩,通过小示例来学习语法吧。

顺序结构:

一、输入姓名和年龄,输出自我介绍。

1
2
3
4
5
6
7
8
9
10
11
12
13
     public  static  void  main(String[] args) {
         //创建输入数据的对象,具体什么叫对象···,先不用管吧
         Scanner input =  new  Scanner(System.in);
         
         String name;     //姓名
         int  age;         //年龄
         System.out.print( "请输入姓名:" );
         name = input.next();
         System.out.print( "请输入年龄:" );
         age = input.nextInt();
         
         System.out.println( "大家好,我叫" +name+ ",今年" +age+ "岁,请多关照。" );
     }

注意:

    这就是一个标准的顺序结构,代码会从上往下执行,如果你把int age;这句话放到最后,那就会在age = input.nextInt();这一行报语法错误了。

结果:

wKiom1mf0_KSWfLMAAAjopYBmVk741.png

 

选择结构:

选择结构的语法有四种,我们通过下面的案例来了解。

一、输入你的存款,如果大于5000则加上“壕”的头衔。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
     public  static  void  main(String[] args) {
         //创建输入数据的对象,具体什么叫对象···,先不用管吧
         Scanner input =  new  Scanner(System.in);
         
         String name;     //姓名
         int  deposit;     //存款
         System.out.print( "请输入姓名:" );
         name = input.next();
         System.out.print( "请输入存款:" );
         deposit = input.nextInt();
         
         System.out.print( "大家好,我叫" +name);
         if (deposit> 5000 ){
             System.out.print( "(壕)" );
         }
         System.out.println( "。" );
     }

语法:

    if( 条件 ){ 要执行的代码 }

注意:

    条件成立时会执行{}中的所有代码。

结果:

wKioL1mf1tPADQwqAAAW6tvQi2k216.png    wKioL1mf1uKhKQmTAAAY338-GiU737.png

 

二、输入你的存款,如果大于5000则加上“壕”的头衔,否则加上“穷13”的头衔。

1
2
3
4
5
6
         if (deposit> 5000 ){
             System.out.print( "(壕)" );
         }
         else {
             System.out.print( "(穷13)" );
         }

注意:别的代码不用动,只需要在if(){}结构上加上else{}就OK了,else{}表示条件不成立时的执行代码。

结果:

wKiom1mf2MmQ4_YKAAAOqZ5QPuI339.png

三、输入你的存款,如果大于50000,则加上“神壕”的头衔,否则如果大于30000,则加上“金壕”的头衔,否则如果大于10000,则加上“壕”的头衔,否则加上“穷13”的头衔。m.beefsoup.cn板面的做法和配料

1
2
3
4
5
6
7
8
9
10
11
12
         if (deposit> 50000 ){
             System.out.print( "(神壕)" );
         }
         else  if (deposit> 30000 ){
             System.out.print( "(金壕)" );
         }
         else  if (deposit> 10000 ){
             System.out.print( "(壕)" );
         }
         else {
             System.out.print( "(穷13)" );
         }

注意:这种语法叫多分支选择结构(一般用于选择情况大于2的场合,比如演唱会门票的级别、你的女神的胸肌是A还是BCDEF等)。

结果就不展示了。

 

四、查询余额请按1,套餐更改请按2,宽带业务请按3,企业业务请按4,人工服务请按5,其它业务请瞎按.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
     public  static  void  main(String[] args) {
         //创建输入数据的对象,具体什么叫对象···,先不用管吧
         Scanner input =  new  Scanner(System.in);
         int  num;
         System.out.print( "1.查询余额请按1,"
                 "\n2.套餐更改请按2"
                 "\n3.宽带业务请按3"
                 "\n4.企业业务请按4"
                 "\n5.人工服务请按5"
                 "\n6.其它业务请瞎按"
                 "\n请选择:" );
         num = input.nextInt();
         
         switch  (num) {
         case  1 :
             System.out.println( "您的余额为0。" );     break ;
         case  2 :
             System.out.println( "改完了,请回吧。" );     break ;
         case  3 :
             System.out.println( "宽带装好了,请交钱1998¥。" );     break ;
         case  4 :
             System.out.println( "请上传企业注册资料。" );     break ;
         case  5 :
             System.out.println( "我们正在招聘服务人员,请稍等..." );     break ;
 
         default :
             System.out.println( "乱按好玩吧..." );     break ;
         }
     }

注意:

  1. switch语法一般用于数值类型和布尔类型等值判断的场合,最新版的JDK支持String类型了。小伙伴们可以自己试试。

  2. 每个case后的语句执行完后都有个小尾巴(break;),表示从这儿退出switch结构,大家可以把这个小尾巴去掉看看结果有什么不一样。

结果:

wKiom1mf3RTTZKHyAAArPoVQZ0Y868.png

 

循环结构:

循环结构常用的有四种:while、do...while、for、foreach(后面讲集合时再介绍)。

对应的语法都很简单,我们通过求100以内的奇数和来了解一下,后面再来分析一个经典案例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     public  static  void  main(String[] args) {
         //求100以内的奇数和
         
         //1.while循环
         int  i =  1 ;     //循环的初值
         int  s =  0 ;     //保存和
         while  (i<= 100 ) {     //循环的条件
             s += i;  //循环的内容
             i +=  2 ;     //循环的步长(也就是循环变量的值如何变化)
         }
         System.out.println( "while循环结果:" +s);
         
         //变量值还原
         i =  1 ;
         s =  0 ;
         //2.do...while循环
         do  {
             s += i;
             i +=  2 ;
         while  (i<= 100 );
         System.out.println( "do...while循环结果:" +s);
         
         //变量值还原
         s =  0 ;
         //3.for循环
         for  (i =  1 ; i <=  100 ; i+= 2 ) {
             s += i;
         }
         System.out.println( "for循环结果:" +s);
     }

执行结果:

wKiom1mjzN7AGnbzAAAd79DiQS0175.png

从上面的语法应该可以看出,循环主要有四个点:初值、条件、步长、循环体(内容)。那么这三种循环的语法有什么区别呢?

while循环:侧重于不确定循环次数的场合,先判断,如果条件成立则进入循环。

do...while循环:侧重于不确定循环次数的场合,先执行一次,之后如果条件成立则时入循环。

for循环:侧重于确定循环次数的场合。

与循环配合使用的还有两个关键字:continue和break;

他们的作用,看代码和结果吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
     public  static  void  main(String[] args) {
         for  ( int  i =  0 ; i <  10 ; i++) {
             if (i== 5 ){
                 continue ;
             }
             System.out.print(i+ "," );
         }
         System.out.println( "\n=======================" );
         for  ( int  i =  0 ; i <  10 ; i++) {
             if (i== 5 ){
                 break ;
             }
             System.out.print(i+ "," );
         }
     }

结果:

wKioL1mjz6_D1SW1AAAbiam_rjw849.png

注意到两个的区别了吧

运行continue后,就不再执行循环里面continue后面的代码,直接运行i++去了。

而运行break后,则直接跳出了循环,后面的都不执行了。

 

经典案例:登录功能,如果账号密码输入正确则登录成功,否则请再次输入密码。

    分析:

    登录时要输入几次账号密码?很明显不知道啊!!!所以for循环被排除了。

    然后再判断,是要先输入账号密码后判断,还是先判断后再输入账号密码呢?

    这也很明显,要先输入了才需要判断啊!!!所以while循环也被排除了。

    最后就剩下do...while循环了。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
     public  static  void  main(String[] args) {
         //模拟登录功能
         //分析过程:
         //1.定义保存账号和密码的变量
         Scanner input =  new  Scanner(System.in);
         String inLoginID;
         String inLoginPWD;
         //2.因为还没学习数据库,所以定义两个变量保存正确的账号和密码
         String loginID =  "liergou" ;
         String loginPWD =  "haha250" ;
         //3.输入账号和密码
         do {
             System.out.print( "请输入账号:" );
             inLoginID = input.next();
             System.out.print( "请输入密码:" );
             inLoginPWD = input.next();
             //4.判断输入的账号和密码与正确的是否相同(判断字符串是否相等使用equals方法),
             //如果相同等提示登录成功,循环结束,否则提示重新输入
             if (inLoginID.equals(loginID) && inLoginPWD.equals(loginPWD)){
                 System.out.println( "登录成功!" );
                 break ;
             }
             else {
                 System.out.println( "账号和密码不匹配,请重新输入!" );
             }
         } while  ( true );
     }

如果你非要使用while和for,那··············当然也是可以滴,只不过代码复杂度会上升,特别是使用for来写的话会很奇怪,大伙可以看看:

这是使用while的写法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
     public  static  void  main(String[] args) {
         //模拟登录功能
         //分析过程:
         //1.定义保存账号和密码的变量
         Scanner input =  new  Scanner(System.in);
         String inLoginID;
         String inLoginPWD;
         //2.因为还没学习数据库,所以定义两个变量保存正确的账号和密码
         String loginID =  "liergou" ;
         String loginPWD =  "haha250" ;
         //3.输入账号和密码
         System.out.print( "请输入账号:" );
         inLoginID = input.next();
         System.out.print( "请输入密码:" );
         inLoginPWD = input.next();
             
         while  ( true ){
             //4.判断输入的账号和密码与正确的是否相同(判断字符串是否相等使用equals方法),
             //  如果相同等提示登录成功,循环结束,否则提示重新输入
             if (inLoginID.equals(loginID) && inLoginPWD.equals(loginPWD)){
                 System.out.println( "登录成功!" );
                 break ;
             }
             else {
                 System.out.println( "账号和密码不匹配,请重新输入!" );
                 //下面的代码重复了
                 System.out.print( "请输入账号:" );
                 inLoginID = input.next();
                 System.out.print( "请输入密码:" );
                 inLoginPWD = input.next();
             }
         }
     }

 

下面是使用for的写法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
         for  (; true ;){
             //4.判断输入的账号和密码与正确的是否相同(判断字符串是否相等使用equals方法),
             //  如果相同等提示登录成功,循环结束,否则提示重新输入
             if (inLoginID.equals(loginID) && inLoginPWD.equals(loginPWD)){
                 System.out.println( "登录成功!" );
                 break ;
             }
             else {
                 System.out.println( "账号和密码不匹配,请重新输入!" );
                 //下面的代码重复了
                 System.out.print( "请输入账号:" );
                 inLoginID = input.next();
                 System.out.print( "请输入密码:" );
                 inLoginPWD = input.next();
             }
         }

 

转载于:https://www.cnblogs.com/xxr1/p/7450544.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值