java se 结构_JavaSE入门篇:程序结构
原標(biāo)題:JavaSE入門篇:程序結(jié)構(gòu)
來源:Java團(tuán)長
https://mp.weixin.qq.com/s/LZTqDztoYXK-UrcwhQqxnw
程序員共讀整理發(fā)布,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)
程序的結(jié)構(gòu)一般分為三種:
順序結(jié)構(gòu)。
選擇結(jié)構(gòu)。
循環(huán)結(jié)構(gòu)。
一、順序結(jié)構(gòu):這個(gè)不用多說吧,跟我們平時(shí)寫文章的順序一樣,從上往下。
二、選擇結(jié)構(gòu):從名字就能看出,要選擇嘛,到底是要漂亮滴妹子,還是要有錢滴妹子呢!當(dāng)然,如果是個(gè)吊絲碼農(nóng)滴話,那你就不要多想了,還是老老實(shí)實(shí)碼代碼吧···
三、循環(huán)結(jié)構(gòu):循環(huán)啊,就是一直轉(zhuǎn)啊轉(zhuǎn)啊轉(zhuǎn)啊,轉(zhuǎn)到出意外為止。
接下來還是老規(guī)矩,通過小示例來學(xué)習(xí)語法吧。
順序結(jié)構(gòu):
一、輸入姓名和年齡,輸出自我介紹。
publicstaticvoidmain(String[] args){
//創(chuàng)建輸入數(shù)據(jù)的對象,具體什么叫對象···,先不用管吧
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+ "歲,請多關(guān)照。");
}
注意:
這就是一個(gè)標(biāo)準(zhǔn)的順序結(jié)構(gòu),代碼會(huì)從上往下執(zhí)行,如果你把int age;這句話放到最后,那就會(huì)在age = input.nextInt();這一行報(bào)語法錯(cuò)誤了。
結(jié)果:
選擇結(jié)構(gòu):
選擇結(jié)構(gòu)的語法有四種,我們通過下面的案例來了解。
一、輸入你的存款,如果大于5000則加上“壕”的頭銜。
publicstaticvoidmain(String[] args){
//創(chuàng)建輸入數(shù)據(jù)的對象,具體什么叫對象···,先不用管吧
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( 條件 ){ 要執(zhí)行的代碼 }
注意:
條件成立時(shí)會(huì)執(zhí)行{}中的所有代碼。
結(jié)果:
二、輸入你的存款,如果大于5000則加上“壕”的頭銜,否則加上“窮13”的頭銜。
if(deposit> 5000){
System.out. print( "(壕)");
}
else{
System.out. print( "(窮13)");
}
注意:別的代碼不用動(dòng),只需要在if(){}結(jié)構(gòu)上加上else{}就OK了,else{}表示條件不成立時(shí)的執(zhí)行代碼。
結(jié)果:
三、輸入你的存款,如果大于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)");
}
注意:這種語法叫多分支選擇結(jié)構(gòu)(一般用于選擇情況大于2的場合,比如演唱會(huì)門票的級別、你的女神的胸肌是A還是BCDEF等)。
結(jié)果就不展示了。
四、查詢余額請按1,套餐更改請按2,寬帶業(yè)務(wù)請按3,企業(yè)業(yè)務(wù)請按4,人工服務(wù)請按5,其它業(yè)務(wù)請瞎按。
publicstaticvoidmain(String[] args){
//創(chuàng)建輸入數(shù)據(jù)的對象,具體什么叫對象···,先不用管吧
Scanner input = newScanner(System. in);
intnum;
System. out.print( "1.查詢余額請按1,"
+ " 2.套餐更改請按2"
+ " 3.寬帶業(yè)務(wù)請按3"
+ " 4.企業(yè)業(yè)務(wù)請按4"
+ " 5.人工服務(wù)請按5"
+ " 6.其它業(yè)務(wù)請瞎按"
+ " 請選擇:");
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( "請上傳企業(yè)注冊資料。"); break;
case5:
System. out.println( "我們正在招聘服務(wù)人員,請稍等..."); break;
default:
System. out.println( "亂按好玩吧..."); break;
}
}
注意:
switch語法一般用于數(shù)值類型和布爾類型等值判斷的場合,最新版的JDK支持String類型了。小伙伴們可以自己試試。
每個(gè)case后的語句執(zhí)行完后都有個(gè)小尾巴(break;),表示從這兒退出switch結(jié)構(gòu),大家可以把這個(gè)小尾巴去掉看看結(jié)果有什么不一樣。
結(jié)果:
循環(huán)結(jié)構(gòu):
循環(huán)結(jié)構(gòu)常用的有四種:while、do...while、for、foreach(后面講集合時(shí)再介紹)。
對應(yīng)的語法都很簡單,我們通過求100以內(nèi)的奇數(shù)和來了解一下,后面再來分析一個(gè)經(jīng)典案例。
publicstaticvoidmain(String[] args){
//求100以內(nèi)的奇數(shù)和
//1.while循環(huán)
inti = 1; //循環(huán)的初值
ints = 0; //保存和
while(i<= 100) { //循環(huán)的條件
s += i; //循環(huán)的內(nèi)容
i += 2; //循環(huán)的步長(也就是循環(huán)變量的值如何變化)
}
System. out.println( "while循環(huán)結(jié)果:"+s);
//變量值還原
i = 1;
s = 0;
//2.do...while循環(huán)
do{
s += i;
i += 2;
} while(i<= 100);
System. out.println( "do...while循環(huán)結(jié)果:"+s);
//變量值還原
s = 0;
//3.for循環(huán)
for(i = 1; i <= 100; i+= 2) {
s += i;
}
System. out.println( "for循環(huán)結(jié)果:"+s);
}
執(zhí)行結(jié)果:
從上面的語法應(yīng)該可以看出,循環(huán)主要有四個(gè)點(diǎn):初值、條件、步長、循環(huán)體(內(nèi)容)。那么這三種循環(huán)的語法有什么區(qū)別呢?
while循環(huán):側(cè)重于不確定循環(huán)次數(shù)的場合,先判斷,如果條件成立則進(jìn)入循環(huán)。
do...while循環(huán):側(cè)重于不確定循環(huán)次數(shù)的場合,先執(zhí)行一次,之后如果條件成立則時(shí)入循環(huán)。
for循環(huán):側(cè)重于確定循環(huán)次數(shù)的場合。
與循環(huán)配合使用的還有兩個(gè)關(guān)鍵字:continue和break;
他們的作用,看代碼和結(jié)果吧:
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+ ",");
}
}
結(jié)果:
注意到兩個(gè)的區(qū)別了吧
運(yùn)行continue后,就不再執(zhí)行循環(huán)里面continue后面的代碼,直接運(yùn)行i++去了。
而運(yùn)行break后,則直接跳出了循環(huán),后面的都不執(zhí)行了。
經(jīng)典案例:登錄功能,如果賬號密碼輸入正確則登錄成功,否則請?jiān)俅屋斎朊艽a。
分析:
登錄時(shí)要輸入幾次賬號密碼?很明顯不知道啊!!!所以for循環(huán)被排除了。
然后再判斷,是要先輸入賬號密碼后判斷,還是先判斷后再輸入賬號密碼呢?
這也很明顯,要先輸入了才需要判斷啊!!!所以while循環(huán)也被排除了。
最后就剩下do...while循環(huán)了。代碼如下:
publicstaticvoidmain(String[] args){
//模擬登錄功能
//分析過程:
//1.定義保存賬號和密碼的變量
Scanner input = newScanner(System. in);
String inLoginID;
String inLoginPWD;
//2.因?yàn)檫€沒學(xué)習(xí)數(shù)據(jù)庫,所以定義兩個(gè)變量保存正確的賬號和密碼
String loginID = "liergou";
String loginPWD = "haha250";
//3.輸入賬號和密碼
do{
System. out.print( "請輸入賬號:");
inLoginID = input.next();
System. out.print( "請輸入密碼:");
inLoginPWD = input.next();
//4.判斷輸入的賬號和密碼與正確的是否相同(判斷字符串是否相等使用equals方法),
//如果相同等提示登錄成功,循環(huán)結(jié)束,否則提示重新輸入
if(inLoginID. equals(loginID) && inLoginPWD. equals(loginPWD)){
System. out.println( "登錄成功!");
break;
}
else{
System. out.println( "賬號和密碼不匹配,請重新輸入!");
}
} while( true);
}
如果你非要使用while和for,那··············當(dāng)然也是可以滴,只不過代碼復(fù)雜度會(huì)上升,特別是使用for來寫的話會(huì)很奇怪,大伙可以看看:
這是使用while的寫法
publicstaticvoidmain(String[] args){
//模擬登錄功能
//分析過程:
//1.定義保存賬號和密碼的變量
Scanner input = newScanner(System. in);
String inLoginID;
String inLoginPWD;
//2.因?yàn)檫€沒學(xué)習(xí)數(shù)據(jù)庫,所以定義兩個(gè)變量保存正確的賬號和密碼
String loginID = "liergou";
String loginPWD = "haha250";
//3.輸入賬號和密碼
System. out.print( "請輸入賬號:");
inLoginID = input.next();
System. out.print( "請輸入密碼:");
inLoginPWD = input.next();
while( true){
//4.判斷輸入的賬號和密碼與正確的是否相同(判斷字符串是否相等使用equals方法),
// 如果相同等提示登錄成功,循環(huán)結(jié)束,否則提示重新輸入
if(inLoginID. equals(loginID) && inLoginPWD. equals(loginPWD)){
System. out.println( "登錄成功!");
break;
}
else{
System. out.println( "賬號和密碼不匹配,請重新輸入!");
//下面的代碼重復(fù)了
System. out.print( "請輸入賬號:");
inLoginID = input.next();
System. out.print( "請輸入密碼:");
inLoginPWD = input.next();
}
}
}
下面是使用for的寫法
for(; true;){
//4.判斷輸入的賬號和密碼與正確的是否相同(判斷字符串是否相等使用equals方法),
// 如果相同等提示登錄成功,循環(huán)結(jié)束,否則提示重新輸入
if(inLoginID. equals(loginID) && inLoginPWD. equals(loginPWD)){
System. out.println( "登錄成功!");
break;
}
else{
System. out.println( "賬號和密碼不匹配,請重新輸入!");
//下面的代碼重復(fù)了
System. out.print( "請輸入賬號:");
inLoginID = input.next();
System. out.print( "請輸入密碼:");
inLoginPWD = input.next();
}
}
最后,再布置幾個(gè)練習(xí),各位看官自己分析并練習(xí)練習(xí)吧,看具體使用哪種循環(huán)最好。
1. 打印出所有的"水仙花數(shù)",所謂"水仙花數(shù)"是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)"水仙花數(shù)",因?yàn)?53=1的三次方+5的三次方+3的三次方。
2. 將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。
3. 球從100M高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地時(shí),共經(jīng)過多少M(fèi)?第10次反彈多高?
4. 任意輸入一個(gè)整數(shù)(小于6位),求它的位數(shù)詢問
5. “我愛你,嫁給我吧?”,選擇“你喜歡我嗎?(y/n):",如果輸入為y則打印”我們形影不離“,若輸入為n,則繼續(xù)詢問返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的java se 结构_JavaSE入门篇:程序结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Java从入门到放弃》JavaSE入门
- 下一篇: 《java从入门到放弃》_《Java从入