新聞中心
java問題 1,2,3 8,9,4 7,6,5 這種邏輯通過java代碼怎么實(shí)現(xiàn),怎么寫
代碼:
10年的鐘山網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整鐘山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“鐘山網(wǎng)站設(shè)計(jì)”,“鐘山網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
package com.ufotable.test;
public class Test30 {
private static int l,r,u,d;//定義上下左右邊界
private static int[][] a=new int[0][0];//數(shù)組
private static int y=0,x=0;//初始化坐標(biāo)
private static int step,temp;//步長(zhǎng),上一個(gè)數(shù)組的值
private static void add(int y,int x){
temp+=step;a[y][x]=temp;
}
private static void left(){
while(xl)add(y, --x);//未遇到左邊界
if(yu){//遇到左邊界且未遇到上邊界
l++;up();
}
}
private static void right(){
while(xr)add(y, ++x);//未遇到右邊界
if(yd){//遇到右邊界且未遇到下邊界
r--;
down();
}
}
private static void up(){
while(yu)add(--y, x);//未遇到上邊界
if(xr){//遇到上邊界且未遇到右邊界
u++;
right();
}
}
private static void down(){
while(yd)add(++y, x);//未遇到下邊界
if(xl){//遇到下邊界且未遇到左邊界
d--;
left();
}
}
private static void fun(int start,int step,int length){//產(chǎn)生數(shù)組(起始值,步長(zhǎng),矩陣邊長(zhǎng))
Test30.step=step;
l=u=0;r=d=length-1;
a=new int[length][length];
a[0][0]=temp=start;
up();
}
public static void print(){//輸出矩陣
for(int i=0;ia.length;i++){
for(int j=0;ja.length;j++){
System.out.print(a[i][j]+"\t");
}System.out.println();}
}
public static void main(String[] args) {
fun(0,1,10);//測(cè)試
print();
}
}
輸出結(jié)果:
北大青鳥java培訓(xùn):系統(tǒng)程序員怎樣把代碼寫得又快又好?
很多初學(xué)者包括一些有經(jīng)驗(yàn)的程序員,在敲完代碼的最后一個(gè)字符后,馬上開始編譯和運(yùn)行,迫不急待的想看到自己的工作成果。
快速反饋有助于滿足自己的成就感,但是同時(shí)也會(huì)帶來一些問題:讓編譯器幫你檢查語法錯(cuò)誤可以省些時(shí)間,但程序員往往太專注這些錯(cuò)誤了,以為改完這些錯(cuò)誤就萬事大吉了。
其實(shí)不然,很多錯(cuò)誤編譯器是發(fā)現(xiàn)不了的,像內(nèi)存錯(cuò)誤和線程死鎖等等,這些錯(cuò)誤可能逃過簡(jiǎn)單的測(cè)試而遺留在代碼中,直到集成測(cè)試或者軟件發(fā)布之后才暴露出來,那時(shí)就要花更大代價(jià)去修改它們了。
修改完編譯錯(cuò)誤之后就是運(yùn)行程序了,運(yùn)行起來有錯(cuò)誤,就輪到調(diào)試器上場(chǎng)了。
花了不少時(shí)間去調(diào)試,發(fā)現(xiàn)無非是些低級(jí)錯(cuò)誤,或許你會(huì)自責(zé)自己粗心大意,但是下次可能還是犯同樣的錯(cuò)誤。
更嚴(yán)重的是這種debugfix的方法,往往是頭痛醫(yī)頭腳痛醫(yī)腳,導(dǎo)致低質(zhì)量的軟件。
讓編譯器幫你檢查語法錯(cuò)誤,讓調(diào)試器幫你查BUG,這是天經(jīng)地義的事,但這確實(shí)是又慢又爛的方法。
就像你要到離家東邊1000米的地方開會(huì),結(jié)果你往西邊走,又是坐車又是搭飛機(jī),花了一周時(shí)間,也繞著地球轉(zhuǎn)了一周,終于到了會(huì)議室,你還大發(fā)感慨說,現(xiàn)代的交通工具真是發(fā)達(dá)啊。
其實(shí)你往東走,走路也只要十多分鐘就到了。
不管你的調(diào)試技巧有多高,都不如一次性寫好更高效。
下面是我在閱讀自己代碼時(shí)的一些方法:檢查常見錯(cuò)誤第一遍閱讀時(shí)主要關(guān)注語法錯(cuò)誤、代碼排版和命名規(guī)則等等問題,只要看不順眼就修改它們。
讀完之后,你的代碼很少有低級(jí)錯(cuò)誤,看起來也比較干凈清爽。
第二遍重點(diǎn)關(guān)注常見編程錯(cuò)誤,比如內(nèi)存泄露和可能的越界訪問,變量沒有初始化,函數(shù)忘記返回值等等,在后面的章節(jié)中,我會(huì)介紹這些常見錯(cuò)誤,避免這些錯(cuò)誤可以為你省大量的時(shí)間。
如果有時(shí)間,在測(cè)試完成之后,還可以考慮是否有更好的實(shí)現(xiàn)方法,甚至嘗試重新去實(shí)現(xiàn)它們。
說了讀者可能不相信,在學(xué)習(xí)編程的前幾年,我經(jīng)常重寫整個(gè)模塊,只我覺得能做得更好,能驗(yàn)證我的一些想法,或提高我的編程能力,即使連續(xù)幾天加班到晚上十一點(diǎn),我也要重寫它們。
模擬計(jì)算機(jī)執(zhí)行常見錯(cuò)誤是比較死的東西,按照檢查列表一條一條的做就行了。
有些邏輯通常不是這么直觀的,這時(shí)可以自己模擬計(jì)算機(jī)去執(zhí)行,假想你自己是計(jì)算機(jī),讀入這些代碼時(shí)你會(huì)怎么處理。
北大青鳥認(rèn)為這種方法能有效的完善我們的思路,考慮不同的輸入數(shù)據(jù),各種邊界值,這能幫助我們想到一些沒有處理的情況,讓程序的邏輯更嚴(yán)謹(jǐn)。
java程序開發(fā)中的邏輯思維怎樣學(xué)習(xí)的呢?
邏輯思維的培養(yǎng)對(duì)軟件工程非常重要,思維快的能快速編寫邏輯代碼??梢詮囊幌聨讉€(gè)方面進(jìn)行慢慢培養(yǎng)。
第一:明確學(xué)習(xí)目的
邏輯思維學(xué)習(xí)編程對(duì)多數(shù)IT業(yè)人員來說都是非常有用的。學(xué)編程,做一名編程人員,從個(gè)人角度講,可以解決在軟件使用中所遇到的問題,改進(jìn)現(xiàn)有軟件,可以為自己找到一份理想的工作添加重要得砝碼,有利于在求職道路上謀得一個(gè)好的職位;從國(guó)家的角度,可以為中國(guó)的軟件產(chǎn)業(yè)做出應(yīng)有的貢獻(xiàn),一名優(yōu)秀的程序員永遠(yuǎn)是被爭(zhēng)奪的對(duì)象。學(xué)習(xí)編程還能鍛煉思維,使我們的邏輯思維更加嚴(yán)密;能夠不斷享受到創(chuàng)新的樂趣,將一直有機(jī)會(huì)走在高科技的前沿,因?yàn)槌绦蛟O(shè)計(jì)本身是一種創(chuàng)造性的工作。知識(shí)經(jīng)濟(jì)時(shí)代給我們帶來了無限的機(jī)會(huì),要想真正掌握計(jì)算機(jī)技術(shù),并在IT行業(yè)里干出一番事業(yè)來,有所作為,具有一定的編程能力是一個(gè)基本條件和要求。
第二打好基礎(chǔ),學(xué)好基礎(chǔ)知識(shí)對(duì)我們開發(fā)也很重要學(xué)編程要具備一定的基礎(chǔ),總結(jié)之有以下幾方面:
首先是數(shù)學(xué)基礎(chǔ) 從計(jì)算機(jī)發(fā)展和應(yīng)用的歷史來看計(jì)算機(jī)的數(shù)學(xué)模型和體系結(jié)構(gòu)等都是有數(shù)學(xué)家提出的,最早的計(jì)算機(jī)也是為數(shù)值計(jì)算而設(shè)計(jì)的。因此,要學(xué)好計(jì)算機(jī)就要有一定的數(shù)學(xué)基礎(chǔ),出學(xué)者有高中水平就差不多了。
其次是邏輯思維能力的培養(yǎng) 學(xué)程序設(shè)計(jì)要有一定的邏輯思維能力,“邏思力”的培養(yǎng)要長(zhǎng)時(shí)間的實(shí)踐鍛煉。要想成為一名優(yōu)秀的程序員,最重要的是掌握編程思想。要做到這一點(diǎn)必須在反復(fù)的實(shí)踐、觀察、分析、比較、總結(jié)中逐漸地積累。因此在學(xué)習(xí)編程過程中,我們不必等到什么都完全明白了才去動(dòng)手實(shí)踐,只要明白了大概,就要敢于自己動(dòng)手去體驗(yàn)。誰都有第一次。有些問題只有通過實(shí)踐后才能明白,也只有實(shí)踐才能把老師和書上的知識(shí)變成自己的,高手都是這樣成材的。最后是選擇一種合適的入門語言 面對(duì)各種各樣的語言,應(yīng)按什么樣的順序?qū)W呢?程序設(shè)計(jì)工具不外乎如下幾類: 1)本地開發(fā) 應(yīng)用軟件開發(fā)的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;數(shù)據(jù)庫(kù)開發(fā)工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平臺(tái)開發(fā) 開發(fā)工具如 Java 等。 3)網(wǎng)絡(luò)開發(fā) 對(duì)客戶端開發(fā)工具如:Java Script 等;對(duì)服務(wù)器開發(fā)工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的環(huán)境下幾種開發(fā)工具中 VB 法簡(jiǎn)單并容易理解,界面設(shè)計(jì)是可設(shè)化的,易學(xué)、易用。選 VB 作為入門的方向?qū)Τ鰧W(xué)者是較為適合的。
第三:注意理解一些重要概念
一本程序設(shè)計(jì)的書看到的無非就是變量、函數(shù)、條件語句、循環(huán)語句等概念,但要真正能進(jìn)行編程應(yīng)用,需要深入理解這些概念,在理解的基礎(chǔ)上應(yīng)用,不要只簡(jiǎn)單地學(xué)習(xí)語法、結(jié)構(gòu),而要吃透針對(duì)這些語法、結(jié)構(gòu)的應(yīng)用例子,做到舉一反三,觸類旁通。
第四:掌握編程思想,編程思想使用較多的就是oop編程思想
學(xué)習(xí)一門語言或開發(fā)工具,語法結(jié)構(gòu)、功能調(diào)用是次要的,最主要是學(xué)習(xí)它的思想。例如學(xué)習(xí) VC 就要學(xué)習(xí) Windows 的內(nèi)在機(jī)理、什么是線程......;學(xué)習(xí) COM 就要知道VTALBE 、類廠、接口、idl......,關(guān)鍵是學(xué)一種思想,有了思想,那么我們就可以觸類旁通。
第六:多實(shí)踐、多交流,一切思維來自項(xiàng)目開發(fā)的積累
掌握編程思想必須在編程實(shí)際工作中去實(shí)踐和體會(huì)。編程起步階段要經(jīng)常自己動(dòng)手設(shè)計(jì)程序,具體設(shè)計(jì)時(shí)不要拘泥于固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長(zhǎng)處,豐富編程實(shí)踐,幫助自己提高水平。親自動(dòng)手進(jìn)行程序設(shè)計(jì)是創(chuàng)造性思維應(yīng)用的體現(xiàn),也是培養(yǎng)邏輯思維的好方法。
第七:養(yǎng)成良好的編程習(xí)慣
編程入門不難,但入門后不斷學(xué)習(xí)是十分重要的,相對(duì)來說較為漫長(zhǎng)。在此期間要注意養(yǎng)成一些良好的編程習(xí)慣。編程風(fēng)格的好壞很大程度影響程序質(zhì)量。良好的編程風(fēng)格可以使
程序結(jié)構(gòu)清晰合理,且使程序代碼便于維護(hù)。如代碼的縮進(jìn)編排、變量命令規(guī)則的一致性、代碼的注釋等。
第八:上網(wǎng)學(xué)編程
在網(wǎng)上可以學(xué)到很多不同的編程思想、方法、經(jīng)驗(yàn)和技巧,有大量的工具和作品及相關(guān)的輔導(dǎo)材料供下載
8.加強(qiáng)計(jì)算機(jī)理論知識(shí)的再學(xué)習(xí)
思維培養(yǎng)學(xué)編程是符合“理論→實(shí)踐→再理論→再實(shí)踐”的一個(gè)認(rèn)識(shí)過程。一開始要具有一定的計(jì)算機(jī)理論基礎(chǔ)知識(shí),包括編程所需的數(shù)學(xué)基礎(chǔ)知識(shí),具備了入門的條件,就可以
開始編程的實(shí)踐,從實(shí)踐中可以發(fā)現(xiàn)問題需要加強(qiáng)計(jì)算機(jī)理論知識(shí)的再學(xué)習(xí)。程序人人皆可編,但當(dāng)你發(fā)現(xiàn)編到一定程度很難再提高的時(shí)候,就要回頭來學(xué)習(xí)一些計(jì)算機(jī)科學(xué)和數(shù)
學(xué)基礎(chǔ)理論。學(xué)過之后,很多以前遇到的問題都會(huì)迎刃而解,使人有豁然開朗之感。因此在學(xué)習(xí)編程的過程中要不斷地針對(duì)應(yīng)用中的困惑和問題深入學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、算法、計(jì)算機(jī)
原理、編譯原理、操作系統(tǒng)原理、軟件工程等計(jì)算機(jī)科學(xué)的理論基礎(chǔ)和數(shù)理邏輯、代數(shù)系統(tǒng)、圖論、離散數(shù)學(xué)等數(shù)學(xué)理論基礎(chǔ)知識(shí)。這樣經(jīng)過不斷的學(xué)習(xí),再努力地實(shí)踐,編程水平一定會(huì)不斷提高到一個(gè)新高度。
剛剛來公司不久,Java開發(fā)知道流程但是不會(huì)寫邏輯怎么辦,我是新手?。?!
不會(huì)寫邏輯主要有幾方面。一:你不清楚你要做的項(xiàng)目怎么一個(gè)過程。都有什么流程。都需要哪些功能和數(shù)據(jù)。二:你清楚一的東西,但是不知道用什么技術(shù)實(shí)現(xiàn)代碼。你可以看看你卡在什么地方。如果你知道流程,那么就看一下這個(gè)流程需要什么功能和數(shù)據(jù)。然后考慮你要用的技術(shù)。在選技術(shù)時(shí)可以先從簡(jiǎn)單的技術(shù)開始。然后針對(duì)你選的技術(shù)使用后所出現(xiàn)的問題再改進(jìn)或者尋找新技術(shù)。
如何建立寫java代碼的邏輯性?
給你一個(gè)比較神奇的題
int
i=0;
a=(i++)+(i++)+(i++);
b=(++i)+(++i)+(++i);
system.out.print("a="+a);
system.out.print("b="+b);
猜猜a和b的值,在不同的編譯器和不同的電腦上試試,你也可以使用不同的語言試試。很神奇哦。
再給你一個(gè)邏輯思維比較強(qiáng)的題
求13的13次方的后四位。
還有個(gè)題
int
a=5
int
b=7
要求不能使用第三個(gè)變量,交換a和b的值。
提示:
第一題和底層有關(guān),所以對(duì)于初學(xué)者來說沒有必要弄清楚,純屬娛樂
第二題和計(jì)算機(jī)數(shù)學(xué)有關(guān),搞會(huì)了對(duì)以后的發(fā)展大有幫助。
第三題是純邏輯題,說難也不難,就要看你是怎么理解變量的了。
如果能搞懂這三道題
你的邏輯也就差不多了吧。
網(wǎng)站欄目:java怎么寫邏輯代碼,java業(yè)務(wù)邏輯代碼
瀏覽路徑:http://www.dlmjj.cn/article/hsjpjh.html