2006年12月7日
1.10 星期三
? array 數(shù)組:數(shù)組是一個(gè)具有相同類型的數(shù)據(jù)值得索引集合.
? 數(shù)組申明:double[] rainfull; 推薦
?????????? 或
??? double rainfull[];
?
?? 引用數(shù)據(jù)類型:接口,對(duì)象,數(shù)組.
?? rainfull = new double[12];
?? 創(chuàng)建一個(gè)長(zhǎng)度為12的數(shù)組,把空間地址賦給rainfull.
?? 數(shù)組索引是從0開始(沒(méi)特殊要求情況下,索引一般都是從0開始)
?
?? 動(dòng)態(tài)數(shù)組--自動(dòng)增長(zhǎng)
?? 數(shù)組.length (屬性)
?? String.leng()? (方法)
?? String[] m = {"a","b","c"...}
?? 在申明初始化時(shí),數(shù)組的大小設(shè)定.
?? int size;
?? int[] number;
?? size = Integer.parseInt(JOptionPane.showMessageLag(null,"size of .."));??
?? number = new int[size];?? (方法也不是很好.因?yàn)閟ize不一樣,對(duì)象也就不一樣.)
?? 可變型數(shù)組?
???
?? 對(duì)象數(shù)組
?? 數(shù)組的類型不是基本數(shù)據(jù)類型;
?? Person[] person;
?? person = new Person[20];
?? 對(duì)象數(shù)組每個(gè)元素都是一個(gè)對(duì)象,沒(méi)初始化時(shí)是null.
?? Person[0] = new Person[]; 創(chuàng)建對(duì)象
1.11 星期四
?? JCF--java集合框架
?? Java Collection Framework
?? JCF是什么?
?? 是java語(yǔ)言設(shè)計(jì)出來(lái)的針對(duì)底層算法和數(shù)據(jù)結(jié)構(gòu)的一系列類.
?? 在哪用JCF?
?? 凡是提到數(shù)據(jù)結(jié)構(gòu)和算法的都可以用JCF
?? 為什么用JCF?
?? 讓程序員的重點(diǎn)放在業(yè)務(wù)上,而不是如何去寫算法上.
??
?? 接口???????????????? Collection
????????????????????????? |??? |
????????????????????????? |??? |
??????????????????? set----???? ----list?????????????? map
?
?? 實(shí)現(xiàn)??????????? HashSet????????? ArrayList????????? SoredMap
?
?? 算法??????????? Collections
?? 以上構(gòu)成JCF
?
?? list 列表???? map 映射
?? list的重要特征是幫我們管理大量對(duì)象
?? ArrayList 數(shù)組列表
?? LinkedList (單雙)鏈表 (不是連續(xù)的,通過(guò)指針連接)
?? ArrayList al = new ArrayList();
?? al.add(1);
?? al.add(4);
?? al.add(2);? 增加
?? ......
?? al.remove;? 刪除
?? System.out.println(al);
?? System.out.println(al.get(3));
?? 排序
?? Collections.sort(al); 小到大
?? Collections.max(al);
?? Collections.min(al);
?? Collections.sort(al,Collection.reverseOrder);? 大到小
?
?? Vector 跟 ArrayList 很相似
?? 向量
?? 如何便利集合
?? Iterator it = al.iterator(); 迭帶器 挨個(gè)訪問(wèn)
?? while(it.hasNext())
?? {
????? System.out.println(al.next);
?? }
?? HashMap 不允許重復(fù)
?? TreeMap 自動(dòng)排序
?
?? treeMap tr = new TreeMap();
?? tr.put(1,1);? (key,value)
?? .......
?? Object[] o = tr.keySet().ToArray();
?? Object[] o = tr.value().ToArray();???????????????
?
?? System.out.println(tr);
?? for(int i = 0;i<o.leng;i++)
?? {
????? System.out.println(0[i]);
?? }
12.25!~12.27
GUI
1 容器,部件
2 事件處理
awt和swing的特點(diǎn):
awt(抽象窗口工具集)是依賴操作系統(tǒng)的GUI.
能夠顯示出來(lái)的組件是不同操作系統(tǒng)的共有組件.(但是不太好看.)
swing(模擬GUI組件)速度比awt要慢的多.
swt(sun公司的,是swing和awt的綜合體)如果swt產(chǎn)生的組件awt有就直接調(diào)用, 沒(méi)有就模擬出來(lái).這樣既解決了跨平臺(tái)的問(wèn)題,也解決了速度慢的問(wèn)題.
低層容器:容器是包含其他組件的組件.
JFrame,JApplet,JDialog.?
布局管理器:
標(biāo)準(zhǔn)布局,自由布局.
GUI三個(gè)步驟:
1.選擇容器
2.為容器設(shè)置布局方式
3.為容器填加組件
導(dǎo)入3個(gè)包
import javax.swing.*;
import java.awt.*;
import awt.event.*;
GUI底層容器的實(shí)現(xiàn)方式
第一種:
JFrame jf = new JFrame();? //拿一個(gè)容器
jf.setLayout(null);???????
JButton jb = new JButton();
jb.setBounds(0,0,20,20);? //絕對(duì)布局
jf.add(jb);
this.setSize(200,200);
this.setVisible(true);
第二種:
類 extends JFrame?? //讓自己的類變成容器
申明組件;
public 類
{
?Container ct = this.getContentPane();
?ct.add();
?this.setSize();
?this.setVisible();
}
this.setCursor(new Cursor(Cursor.HAND_CURSOR));? //變手
Image image = new ImageIcon("Sunset.jpg").getImage();
setIconImage(image);//改變圖標(biāo)
容器,根容器,部件看gui資料? E盤..
布局管理器
FlowLayout 面板(缺省管理器) 流布局管理器
在setLayout(null)下全是FlowLayout
BorderLayout JFrame(缺省布局管理器) 東 西 南 北 中
GridLayout 行列(像表格)
CardLayout 卡片布局管理器(沒(méi)有頁(yè)簽)
GridBagLayout 格蘭包布局管理器(標(biāo)準(zhǔn)管理器中最靈活的,不好把控)??
FlowLayout 從上到下,從左到右放置.
1.當(dāng)?shù)谝恍袥](méi)有排滿時(shí),會(huì)把第一行排滿再排下一行.
2.不管布局管理器是否改變,組件大小都不會(huì)改變.
FlowLayout folw = new FlowLayout (FlowLayout.LEFT);
3.在缺省狀態(tài)下從中部開始.
BorderLayout
當(dāng)東西南北任何一個(gè)地區(qū)沒(méi)放置任何組件時(shí),中部區(qū)域會(huì)把周圍的區(qū)域侵略掉.
setLayout(new BorderLayout());
組件會(huì)隨著容器大小的變化而變化.
add("North",組件); 不好用
add(組件,BorderLayout.NORTH); 清晰
GridLayout
組件會(huì)隨著容器大小的變化而變化.
setLayout(new GridLayout(3,2));? 行列
add(new Button("first",0));
根據(jù)序列依次填進(jìn)去,只有列滿了才去填行.
validate();? 讓容器刷新
GardLayout
GardLayout card = new GardLayout();
setLayout(card);
add("1",new Button(""));
CardLayout cl = (CardLayout)cardLayout.getLayout;
cl.show(cardLayout,"card1");
事件
class 類 extends JFrame implements(實(shí)現(xiàn)) ActionListener(接口)
{????????????????????? (受托事件處理)
?????????????????????? 不同的事件不同的部門處理
}
1 讓類變成監(jiān)聽(tīng)者
2 賦予多少職責(zé)就實(shí)現(xiàn)多少
3 建立部件與監(jiān)聽(tīng)者的關(guān)系
jb.addActionListener(this);
?
CardLayout cl = (CardLayout)card.getLayout();
String s = e.getActionCommed();
if(s.equals("上一步"))
{
?cl.show(card,"card2");
?????? ?或者
??????? cl.previous(card);
?button.setEnabled(false);
}
else if(s.equals("下一步"))
{
?cl.show(card,"card1");
?????? ?或者
??????? cl.previous(card);
?button.setEnabled(false);
}
?
?
?
?
?
?
?
?
?
2.19 星期二
? 在方法里面申明的屬性必須初始化.(局部變量)
? 在類里面申明的屬性不用初始化.(全局變量)
? 如果一個(gè)方法有返回值,那么方法里必須加上return.返回類型沒(méi)有void.
? 構(gòu)造器就是類的構(gòu)造方法.
? 構(gòu)造方法的基本特點(diǎn):
? 方法名和類名一致,方法名沒(méi)有返回類型.
? 構(gòu)造方法的特性:
? 1.每個(gè)類一定會(huì)有一個(gè)不帶參數(shù)的默認(rèn)構(gòu)造方法.
? 2.如果一個(gè)類定義了一個(gè)帶參數(shù)的構(gòu)造方法,那么不帶參數(shù)的構(gòu)造方法就會(huì)被洗刷掉.
? 3.構(gòu)造方法可以重載.(如一個(gè)帶參數(shù)的和一個(gè)帶參數(shù)的)
? 一個(gè)類的方法同名叫做方法重載.
? 4.構(gòu)造方法是不能被繼承的.
?
? 實(shí)例變量:在類里面任何一個(gè)方法外面的變量.每個(gè)對(duì)象都有屬于自己實(shí)例變量的拷貝.
? public private這個(gè)我們稱之為"可見(jiàn)性修飾符".它來(lái)指定數(shù)據(jù)成員和方法的訪問(wèn)能力和訪問(wèn)級(jí)別.
? 如果這個(gè)方法的行為是改變對(duì)象的屬性,設(shè)置對(duì)象屬性的值,那么這個(gè)方法稱之為"修改器".
? public void setHeight(float h, float w)
? {
???? height = h;
???? weight = w;
? }?
? 如果這個(gè)方法只是返回對(duì)象屬性,那么我們稱這個(gè)方法為"訪問(wèn)器".
? public void abc()
? {
???? return a;
? }
12.20 星期三
? static int i;是類變量
? 缺省修飾符:本包的都可以訪問(wèn).
? 公共修飾符(public):任何地方都可以訪問(wèn).
? if()
? 語(yǔ)句1;
? else
? 語(yǔ)句2;
?
? ?? :?????? if else的工程用法(三目運(yùn)算符)
?
? switch的條件語(yǔ)句只能是整數(shù)
? equals方法是被重寫過(guò)的.
?
? equals跟==的區(qū)別:
? equals比較的是內(nèi)存空間的內(nèi)容是否相同
? == 比較的是兩個(gè)對(duì)象的地址是否相同
12.21 星期四
properties
?
import java.io.*;
import java.util.Properties;
class P
{
?Properties pro;
?
?public P()
?{
??pro = new Properties();
?}
?
?public void load(String fileName)
?{
??try
??{
???pro.load(new FileInputStream(fileName));加載
??}
??catch(IOException e)
??{
???e.printStackTrace();
??}
?}
?
?public void getP(String key)
?{
??System.out.println(pro.getProperty(key));讀取
?}
?
?public void setP(String key,String value)
?{
??pro.setProperty(key,value);設(shè)置(在內(nèi)存里)
?}
?
?public void storeP(String fileName,String Info)
?{
??try
??{
???pro.store(new FileOutputStream(fileName),Info);保存(在文件)
??}
??catch(IOException e)
??{
???e.printStackTrace();
??}
?}
?
}
普通文件? 后綴.peoperties
(柔性軟件開發(fā))目的:可以讓程序變的靈活,配置變的輕巧。
循環(huán)語(yǔ)句
while循環(huán):循環(huán)次數(shù)未知使用。
for 循環(huán):已知循環(huán)次數(shù)使用。
do-while循環(huán)
?
?
java基礎(chǔ)
static是靜態(tài)。
靜態(tài)方法不能訪問(wèn)非靜態(tài)成員。
非靜態(tài)方法可以訪問(wèn)靜態(tài)成員。
int i = 3;
public static void main(String[] args)?
{?
?System.out.println(i);
}
這個(gè)就會(huì)報(bào)錯(cuò)。因?yàn)殪o態(tài)方法不能訪問(wèn)非靜態(tài)成員??!
?static int i = 3;
?public static void main(String[] args)
?{
??nbn n = new nbn();
??n.abc();
?}
?
?public void abc()
?{
??System.out.println(i);
?}
這個(gè)就不會(huì)報(bào)錯(cuò)。因?yàn)榉庆o態(tài)方法可以訪問(wèn)靜態(tài)成員。
?
public(訪問(wèn)修飾符)static(訪問(wèn)修飾符)void(返回類型) main(方法名)(String[] args)(參數(shù)表){}
import javax.swing.*;
import java.text.SimpleDateFormat;
class jframe
{
?public static void main(String[] args)
?{
??JFrame jf = new JFrame();//窗口
??
??SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd");//時(shí)間格式
??java.util.Date da = new java.util.Date();//顯示時(shí)間的對(duì)象申明
??
??
??jf.setTitle("w.a.n");//設(shè)置標(biāo)題
??jf.setSize(300,300);//設(shè)置窗體大小
??jf.setVisible(true);//顯示
??JOptionPane.showMessageDialog(jf(位置),"hello");//彈出窗口顯示HELLO
??String a = JOptionPane.showInputDialog(null,"can you see?");//輸入窗口,窗口提示為can you see
??
??JOptionPane.showMessageDialog跟JOptionPane.showInputDialog還有一種參數(shù)寫法。
??JOptionPane.showMessageDialog(null," "(顯示信息)," "(標(biāo)題信息),JOptionPane.INFORMATION_MESSAGE);
??System.out.println(sf.format(da.getTime())); //輸出年月日。用SimpleDateFormat
??
?}
}
三種注釋
/**
?*文檔註釋,寫在開頭 ( 注明程序的功能,以及相關(guān)信息)
?*功能:
?*作者:
?*版本:
?*開發(fā)日期:
?**/
/*
? *多行註釋
?
*///單行註釋
import javax.swing.JOptionPane;
class Area
{
?final private static double PI = 3.1415;? //常量的申明:final
?private String r;
?private double rr;
?private double s;
?
?
?public static void main(String[] args)
?{
??Area a = new Area();
??a.Input();
??a.Areas();
?}
?
?public void Input()
?{
??r? = JOptionPane.showInputDialog(null,"請(qǐng)輸入圓半徑");
?}
?
?public void Areas()
?{??
??rr = Double.parseDouble(r);//類型轉(zhuǎn)換?
??s? = rr*rr*PI;
??JOptionPane.showMessageDialog(null,"圓面積是:"+s);
?}
}
類型轉(zhuǎn)換
String轉(zhuǎn)double
xx = Double.parseDouble(要轉(zhuǎn)換的數(shù)據(jù)名字);
String轉(zhuǎn)int
xx = Integer.parseInt(要轉(zhuǎn)換的數(shù)據(jù)名字);
int轉(zhuǎn)String
String s = String.valueOf(12);
或
String s = new Integer(10).toString();
注意??!
float f = 2.33 是錯(cuò)的。因?yàn)?.33默認(rèn)類型是double.
改正:float f = 2.33 F;
還要注意
高內(nèi)聚,松耦合。
函數(shù)分解。
這樣代碼看起來(lái)會(huì)很清爽。
import java.text.DecimalFormat;
class Dformat
{
?public static void main(String[] args)
?{
??DecimalFormat df = new DecimalFormat("0");//格式0后面幾個(gè)小數(shù)點(diǎn)表示保留幾位小數(shù)
??System.out.println(df.format(66.6666)+"%");//這樣66.666就是67%
?}
}
標(biāo)準(zhǔn)輸出
System.out.print("");//加ln是換行
標(biāo)準(zhǔn)輸入
System.out.println(System.in.read());//這個(gè)方法用來(lái)讀取阿科斯碼
System.out.println((char)System.in.read());//這個(gè)方法是強(qiáng)制轉(zhuǎn)換,只能讀取一個(gè)字符
import java.io.*;//用BufferedReader 要引用io包
class c
{?
?public static void main(String[] args)throws Exception //要拋異常
?{
?BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
?String s = br.readLine();
?System.out.println(s);
?}
}
?要導(dǎo)入util包,util是工具包.
?Scanner sc = new Scanner(System.in);
?int s = sc.nextInt();
?int s1 = sc.nextInt();
?System.out.println(s*s1);//用Scanner可以省去判斷的步驟 在jdk1.5以下的版本不能用
GregorianCalendar calendar = new GregorianCalendar(year,month,day);
int d = calendar.get(Calendar.DAY_OF_WEEK);//今天是一周內(nèi)的哪一天
?
?
?
?
?
?
?
?
?
?
?
將HTML和JS文件分離的好處.<script type="text/javascript" src="";
1.分離的話易于維護(hù)和管理.
2.可重用.
javascript的作用是:1實(shí)現(xiàn)客戶端與網(wǎng)頁(yè)的交互(人機(jī)交互)
?????????????????????????????? 2客戶端驗(yàn)證
window的2個(gè)"兒子":document?和? history
window有3個(gè)主要的.alert(提示框),open(新開一個(gè)窗口),prompt(對(duì)話框)
還有window.location.href="";實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)
window.status="";(狀態(tài)條下寫字).
window.history.back();(返回)
window.history.forward();(前進(jìn))
window.history.go(2);(前進(jìn)2步)
window.history.go(-2);(退后2步)
事件
onclick單擊 ondblclick雙擊
onfocus 聚焦 onblur 失焦
onselect 選擇事件
window.setTimeout("函數(shù)",時(shí)間)? (定時(shí)器)
onmouseover 鼠標(biāo)放上去
onmouseout 鼠標(biāo)離開
下拉列表:onchange
onload 寫在<body>里 登陸發(fā)生的事件
onunload 寫在<body>里? 離開發(fā)生的事件
獲取表單對(duì)象
document.formTest(表單名);
document.forms[0];
document.forms["表單名"];
document.getElementById("formId");
<form name="formTest" action="#">
??<input type="checkbox" id="w1" name="box" value="0" />男
??<input type="checkbox" id="w2" name="box" value="0" />女
??<input type="checkbox" id="w3" name="box" value="0" />外鄉(xiāng)人</br>
??<input type="button" value="ok" onclick="w1.checked='checked';w2.checked='checked';w3.checked='checked'"/>
簡(jiǎn)單的按一個(gè)鍵,所有的check都被選中.
下面的這個(gè)是關(guān)于表單驗(yàn)證的一個(gè)作業(yè).需要分析:就是在一個(gè)TEXT聚焦的時(shí)候,就會(huì)在旁邊顯示一排字告訴你里面內(nèi)容必須不為空,并且要大于或者等于8位.當(dāng)你輸入的內(nèi)容符合要求的時(shí)候,該行字就自動(dòng)小時(shí).我算是基本實(shí)現(xiàn)了功能了,但是不完善.因?yàn)楫?dāng)我輸入9個(gè)字的時(shí)候,字并不是自動(dòng)小時(shí)的,而是需要我再一次的聚焦..如果那位達(dá)人能幫忙解決下,俺感激不盡..
代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
<html xmlns="?<head>
??<!-- Created by TopStyle Pro Trial Version - www.bradsoft.com -->
??<title></title>
??<style>
???div
???{
????color: red;
????font-size: 13px;
???}
???
???
??
??</style>
??<script>
???function tixing()
???{
????
????var divObject = document.getElementById("div1");
????var text= document.getElementById("t1");
????if(text.value.length >=8)
????{
????divObject.innerHTML = "您輸入的用戶名必須在0-8位之間。";
????divObject.style.display = "none";
????}?
????else
????{
????divObject.innerHTML = "您輸入的用戶名必須在0-8位之間。";
????divObject.style.display = "";
????}
????
???}?
???function tixing1()
???{
????var divObject1 = document.getElementById("div2");
????var text2= document.getElementById("t2");
????if(text2.value.length >=8)
????{
????divObject1.innerHTML = "您輸入的用戶名必須在0-8位之間。";
????divObject1.style.display = "none";
????}?
????else
????{
????divObject1.innerHTML = "您輸入的用戶名必須在0-8位之間。";
????divObject1.style.display = "";
????}
???}
???function validate()
???{
????var te1 = document.getElementById("t1")
????var te2 = document.getElementById("t2")
????var divObject = div1;
????var divObject1 = div2;
????
????if(te1.value.length < 8)
????{
?????divObject.innerHTML = "您輸入的用戶名必須在0-8位之間。";
?????divObject.style.display = "";
????}????
????
????if(te2.value.length < 8)
????{
?????divObject1.innerHTML = "您輸入的密碼必須在0-8位之間"
?????divObject1.style.display = "";
????}
????
????if(te1.value.length < 8 && te2.value.length < 8)
????{
????divObject.innerHTML = "您輸入的用戶名必須在0-8位之間。";
????divObject1.innerHTML = "您輸入的密碼必須在0-8位之間"
????divObject.style.display = "";
????divObject1.style.display = "";
????}
???}
???
??</script>
?</head>
?<body>
??<form id="formTest">
???用戶名
???<input type="text" id="t1"? onfocus="tixing();"/><br /><div id="div1"? ></div>
???密 碼?
???<input type="password" id="t2"? onfocus="tixing1()" /><br /><div id="div2"></div>
???<input type="button" id="bt1" value="登錄" onclick="validate()"/>
??</form>
?</body>
</html>
再下面的這個(gè)是今天的作業(yè).
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
<html xmlns="<head>
?<!-- Created by TopStyle Pro Trial Version - www.bradsoft.com -->
?<title></title>
?<style>
?div
?{
??float: left;
?}
?</style>
?<script>
??function a()
??{
???var textId0 = document.getElementById("te1");
???var text0 = textId0.value;
???var areId = document.getElementById("text");
???areId.value = areId.value+"1."+"用戶名:"+text0+"\n";
???
??}
??function b()
??{
???var textId1 = document.getElementById("pa");
???var text1 = textId1.value;
???var areId = document.getElementById("text");
???areId.value =areId.value+"3."+"密碼:"+text1+"\n";
??}
??function c()
??{
???var radioId1 = document.getElementById("ra1");
???var radio1 = radioId1.value;
???var areId = document.getElementById("text");
???areId.value =areId.value+"4."+"單選:"+radio1+"\n";
??}
??function d()
??{
???var radioId2 = document.getElementById("ra2");
???var radio2 = radioId2.value;
???var areId = document.getElementById("text");
???areId.value =areId.value+"4."+"單選:"+radio2+"\n";
??}
??function ei()
??{
???var radioId3= document.getElementById("ra3");
???var radio3 = radioId3.value;
???var areId = document.getElementById("text");
???areId.value =areId.value+"4."+"單選:"+radio3+"\n";
??}
??function f()
??{
???var checkId1= document.getElementById("che1");
???var check1 = checkId1.value;
???var areId = document.getElementById("text");
???areId.value =areId.value+"5."+"多選:"+check1+"\n";
??}
??function g()
??{
???var checkId2= document.getElementById("che2");
???var check2 = checkId2.value;
???var areId = document.getElementById("text");
???areId.value =areId.value+"5."+"多選:"+check2+"\n";
??}
??function h()
??{
???var checkId3= document.getElementById("che3");
???var check3 = checkId3.value;
???var areId = document.getElementById("text");
???areId.value =areId.value+"5."+"多選:"+check3+"\n";
??}
??function select()
??{
???var a = document.getElementById("selectId");
???var b = a.options[a.selectedIndex];
???var c = b.value;
???var? areId = document.getElementById("text");
??
???areId.value = areId.value+c;
??}
?</script>
</head>
<body>
?
??<div>
???用戶名:<input type="text" id="te1" onblur="a()"/><br/>
???密  碼:<input type="password" id="pa" onblur="b();"/><br />
???<a>
???<input type="radio" value="吃飯" id="ra1" name="1" onblur="c();"/>吃飯
???<input type="radio" value="睡覺(jué)" id="ra2" name="1" onblur="d();"/>睡覺(jué)
???<input type="radio" value="上學(xué)" id="ra3" name="1" onblur="ei();"/>上學(xué)
???</a><br />
???<a>
???<input type="checkbox" id="che1" value="巷巷" onblur="f()"/>巷巷
???<input type="checkbox" id="che2" value="街道" onblur="g()"/>街道
???<input type="checkbox" id="che3" value="邊邊" onblur="h()"/>邊邊
???</a><br />
???<textarea id="text" cols="20" rows="6"></textarea>
??</div>
??<form id="selectId0">
???<select id="selectId" onblur="select()"; / >
????<option value="東東">東東? </option>
????<option value="南南">南南</option>
????<option value="西西">西西 </option>
????<option value="北北">北北 </option>
???</select>
??</form>
?
</body>
</html>
還是不完善..哎..
do while和 while?的區(qū)別.??
do while? 是先執(zhí)行再判斷
while?? 是先判斷再執(zhí)行
--i;?? 減之前的值
i--;?????? 減之后的值??? ?i的值會(huì)變
i = i - 1;???????????????????????? i的值會(huì)變
i - 1;?? i沒(méi)有變
var i;
/*for(i = 0;i<10;i++)? //;分段?? 初始化;循環(huán)條件;步進(jìn)
{
?document.write(i+"<br />");
}*/
/*for(i = 0;i<20;i++)
{
?if(i == 16)
?{
??break;?
?}
?document.write(i+" ");
}*/
/*for(i = 0;i<20;i++)
{
?if(i%2 == 1)
?{
??continue;
?}
?document.write(i+" ");
}*/
/*var i = 1;
var j = 1;
for(i = 1;i<10;i++)
{
?for(j = 1;j<=i;j++)
?{
??document.write(i+"*"+j+"="+i*j);
??document.write("    ")
?}
?document.write("<br />")
}*/
/*var i = 1;
var j = 1;
?
for(i = 1;i<10;i++)
{?
?for(j = 1;j<10;j++)
?{
??document.write(i+"*"+j+"="+i*j);
??document.write("    ")
?}
?document.write("<br />")
}*/
/*
while(true)? //死循環(huán)
{
?alert("fdfd");
}
alert("end");*/
var i = 20;
while(i>5010)
{
?document.write(i);
?i=i-1;
}
//alert("end");
/*var i = 0;
while(i<100)
{
?document.write(i+" ");
?if(i%10 == 9)
?{
??document.write("<br /><br />");
?}
?i++;
}*/