JAVA学习博客---2015.5
? ? 上一次的學習博客寫的和流水賬差不多,有點生硬的和背目錄一樣,所以既然學習的目的是程序,那么這個月的學習博客就用程序來說點東西吧。這個月看了一些C和JAVA的視頻,開始看別人寫的程序,能看的懂但是自己去寫的話前后邏輯還有方法類的使用不是很清楚。好吧,先去膜拜大神,一步一步來吧。
?
? 先來說一個C的程序。這個程序是把一個十進制的數字轉成二進制的編碼,十進制當中是逢十進一,二進制逢二進一,無論是什么樣的語言寫的任何程序,在計算機里面的記錄方法均為二進制。
#include<iostream> using namespace std; int main() {int T;cin >> T;while(T--){unsigned int n;char bas[30];cin >> n;unsigned int k = 0;if(n == 0)cout<<0;else{while(n){if(n & 1)bas[k++] = '1';elsebas[k++] = '0';n >>= 1;}}for(int i=k-1;i >= 0;i--){cout << bas[i];}cout << endl;} }?
?
?#include<iostream>
這個是C的標準I/O頭文件,標準庫定義了 4 個 IO 對象。處理輸入時使用命名為 cin(讀作 see-in)的 istream 類型對象。這個對象也稱為標準輸入。處理輸出時使用命名為 cout(讀作 see-out)的 ostream 類型對象,這個對象也稱為標準輸出。
程序里面有輸入輸出的內容所以這個是必不可少的???????????????????????????????????????????????????????????????????????????????????? using namespace std;
namespace是指標識符的各種可見范圍。命名空間用關鍵字namespace 來定義。命名空間是C++的一種機制,用來把單個標識符下的大量有邏輯聯系的程序實體組合到一起。此標識符作為此組群的名字。
即讓std內定義的所有標示符都是有效,相當于一個全局變量。
int char
這些標示符是用來聲明變量的類型,int整數,char符號。在這個程序當中聲明了T為int類型,把bas為char字符變量。
?????? if else
標準的if語句,即如果,不然。用來建立條件入口。
?? while
循環語句,計算機的一種基本循環模式。當滿足條件時進入循環,不滿足跳出。這里的程序要求用戶輸入一個變量的T,入口條件當T--?? unsigned int? 在函數體內用到了unsigned int, 是使用無符號的整數類型。 char bas[30]; 建立一個數組長度為30的char 數組。 for(int i=k-1;i >= 0;i--) for循環條件入口,當整數i等于k-1,且i>=0,就i--,若第一個條件為假,后面的算式就不執行了。 看明白這個程序還有一個很重要的東西就是明白十進制轉化為二進制的原理,基本的算法是這樣的。 用x表示十進制的x,假定x變成2進制后的數為三位abc,其中a為最高位,b為次高位,c為最低位。則有 x = a*2^2 + b*2^1 + c*2^0= 4a+2b+c
所以
x%2 = c,
x/2 = a*2 + b
令x=x/2,則x=a*2+b
x%2 = b,
x/2 = a
令x=x/2,則x=a
x%2 = a
x/2 = 0
故每一步的余數為:
c, b, a
把它們顛倒,就得到a,b,c
原理只有一條,可以證明/看出每次除以2的余數正好是2進制的每一個數。(……看了好半天……) 這個是一個非常短的程序,一個很實用的小工具,它可以作為一個方法放到一個class當中,也可以把這個當做父類做繼承。 ? ? 現在來說一個JAVA程序。 import javax.swing.JOptionPane; // program uses JOptionPanepublic class Converter {public static void main(String args[]) {String firstNumber;double number1 = 0;double number2 = 0;boolean loop = true;while (loop) {firstNumber = JOptionPane.showInputDialog("請輸入華氏溫度");try {number1 = Double.parseDouble(firstNumber);loop = false;} catch (NumberFormatException e) {// (2)當用戶輸入錯誤數據時候,提示用戶輸入錯誤,并要求用戶重新輸入內容。JOptionPane.showMessageDialog(null, "輸入錯誤,請重新輸入華氏溫度.", "輸入",JOptionPane.PLAIN_MESSAGE);}}// 攝氏度=(5/9)*(華氏度-32) , 即 攝氏度=(華氏度-32)÷1.8// secondNumber = JOptionPane.showInputDialog("輸入被乘數");number2 = (number1 - 32) / 1.8;JOptionPane.showMessageDialog(null, number1 + "華氏度 = " + number2+ "攝氏度", "結果", JOptionPane.PLAIN_MESSAGE);} // end method main } // end class Addition
?這是一個將華氏度轉化成為一個攝氏度的程序
//后面是注釋,程序不讀這些內容
當然這個程序的算法也是基于華氏度和攝氏度的轉化算法
攝氏度=(5/9)*(華氏度-32)
程度考慮到用戶輸入錯誤的情況。
?
感覺C和JAVA有種不一樣的使用方法,JAVA喜歡調用很多已有的東西,C喜歡設定一些規則。
?
-------------------------------------------------------------------------------
因為主要是去學JAVA的,所以現在主要看別人寫的JAVA代碼,先去明白基本的規則,目前還是很菜,在敲別人的代碼的同時去想別人為什么這么寫,這樣的設計有什么好處,或者這些代碼能不能夠作為其他程序的一個方法。TUT。
轉載于:https://www.cnblogs.com/hello-2015/p/4523694.html
總結
以上是生活随笔為你收集整理的JAVA学习博客---2015.5的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WCF中使用控件的委托,线程中的UI委托
- 下一篇: quartz (一) 基于 Quartz