java se 结构_JavaSE入门篇:程序结构

原标题:JavaSE入门篇:程序结构

来源:Java团长

https://mp.weixin.qq.com/s/LZTqDztoYXK-UrcwhQqxnw

程序员共读整理发布,转载请联系作者获得授权

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

顺序结构。

选择结构。

循环结构。

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

654a62b3c1619a79e8f6aae4f15dec16.png

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

8bd760ea798a1735887ae1050263617b.png

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

626ad0018eb2a0ed5ff1ea1ffeaf5ccd.png

12d857eef3ba4d9486f0dabc4b2c89f9.png

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

顺序结构:

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

publicstaticvoidmain(String[] args){

//创建输入数据的对象,具体什么叫对象···,先不用管吧

Scanner input = newScanner(System. in);

String name; //姓名

intage; //年龄

System. out.print( "请输入姓名:");

name = input.next();

System. out.print( "请输入年龄:");

age = input.nextInt();

System. out.println( "大家好,我叫"+name+ ",今年"+age+ "岁,请多关照。");

}

注意:

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

结果:

d5acc8353f5441c97d064a8185e39fd6.png

选择结构:

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

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

publicstaticvoidmain(String[] args){

//创建输入数据的对象,具体什么叫对象···,先不用管吧

Scanner input = newScanner(System. in);

String name; //姓名

intdeposit; //存款

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( 条件 ){ 要执行的代码 }

注意:

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

结果:

538291b1fe9efed44df8bdb4c5d6c2e2.png

ea0f4d4f7a5d6374ad94a3ef168e4d2f.png

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

if(deposit> 5000){

System.out. print( "(壕)");

}

else{

System.out. print( "(穷13)");

}

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

结果:

cb5b3fd5c6da41e2050a1233fb494792.png

三、输入你的存款,如果大于50000,则加上“神壕”的头衔,否则如果大于30000,则加上“金壕”的头衔,否则如果大于10000,则加上“壕”的头衔,否则加上“穷13”的头衔。

if(deposit> 50000){

System.out. print( "(神壕)");

}

elseif(deposit> 30000){

System.out. print( "(金壕)");

}

elseif(deposit> 10000){

System.out. print( "(壕)");

}

else{

System.out. print( "(穷13)");

}

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

结果就不展示了。

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

publicstaticvoidmain(String[] args){

//创建输入数据的对象,具体什么叫对象···,先不用管吧

Scanner input = newScanner(System. in);

intnum;

System. out.print( "1.查询余额请按1,"

+ " 2.套餐更改请按2"

+ " 3.宽带业务请按3"

+ " 4.企业业务请按4"

+ " 5.人工服务请按5"

+ " 6.其它业务请瞎按"

+ " 请选择:");

num = input.nextInt();

switch(num) {

case1:

System. out.println( "您的余额为0。"); break;

case2:

System. out.println( "改完了,请回吧。"); break;

case3:

System. out.println( "宽带装好了,请交钱1998¥。"); break;

case4:

System. out.println( "请上传企业注册资料。"); break;

case5:

System. out.println( "我们正在招聘服务人员,请稍等..."); break;

default:

System. out.println( "乱按好玩吧..."); break;

}

}

注意:

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

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

结果:

34b0b2951bb14f5f499dccca17a8fb3c.png

循环结构:

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

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

publicstaticvoidmain(String[] args){

//求100以内的奇数和

//1.while循环

inti = 1; //循环的初值

ints = 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);

}

执行结果:

783efa7ad35b38d87ebb1004b3105011.png

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

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

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

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

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

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

publicstaticvoidmain(String[] args){

for( inti = 0; i < 10; i++) {

if(i== 5){

continue;

}

System. out.print(i+ ",");

}

System. out.println( " =======================");

for( inti = 0; i < 10; i++) {

if(i== 5){

break;

}

System. out.print(i+ ",");

}

}

结果:

61ab14f842969224a51f4ff72f6f8175.png

注意到两个的区别了吧

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

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

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

分析:

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

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

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

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

publicstaticvoidmain(String[] args){

//模拟登录功能

//分析过程:

//1.定义保存账号和密码的变量

Scanner input = newScanner(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的写法

publicstaticvoidmain(String[] args){

//模拟登录功能

//分析过程:

//1.定义保存账号和密码的变量

Scanner input = newScanner(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的写法

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();

}

}

最后,再布置几个练习,各位看官自己分析并练习练习吧,看具体使用哪种循环最好。

1. 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

2. 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

3. 球从100M高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少M?第10次反弹多高?

4. 任意输入一个整数(小于6位),求它的位数询问

5. “我爱你,嫁给我吧?”,选择“你喜欢我吗?(y/n):",如果输入为y则打印”我们形影不离“,若输入为n,则继续询问返回搜狐,查看更多

责任编辑:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值