VB编程问题
请详细的说下解题过程 谢谢~~
追问:这里的i 的值是否就是决定 下面那个循环要运行几次啊~
请详细的说下解题过程 谢谢~~
追问:这里的i 的值是否就是决定 下面那个循环要运行几次啊~
答案:該編程為Command的單擊事件。出現了"For...Next..." 循環語句,"if ... then...End if "條件語句。
剛開啟時,a=0,然後就進入了"雙重循環" 語句。以下就是分析該語句:
For i = 1 To 2 (該語句的完整版應為"For i = 1 To 2 Step 1 " 意思為從" i = 1 "開啟,當完成For以下的語句後,即 " Next i " 之前的語句。然後就以增值1,為自己" + 1 ",然後以 " i = 2 ”,又再重複上述事件。當 " i =3 " 時由於不符合" For " 條件就跳出循環。因此該循環只進行了2次。)
在 " For i = 1 To 2 ” 裡面嵌套了" For j = 1 To 4 "這個語句。此結合語句稱為 "雙重循環語句", 而此題目中該語句意思 " 每循環一次 i ,j 就要循環 4 次。" 即當" i =1 時,j 就要執行 j = 1, j = 2, j = 3, j = 4.當i = 2 時也是這樣。所以該結合語句共循環了8 次。
而在 " For j = 1 To 4 ” 裡面嵌套了" If j Mod 2 <> 0 Then a = a -1 "這個語句。該 If 語句意思是" 如果 j 這個數除以 2 的餘數不等於 0(或者說成 j 不能被 2 整除) 的話,就進行 " a = a -1 " 這條語句。
最後就是" a = a +1 " 這條可以說是該編程的最易忽略的一條,因為無論 j 這個數是否被2整除,都要進行 " a = a + 1 “這條。
以下就是執行語句:
剛開啟 a = 0 ,
然後進入循環 :
當 i = 1 時,j = 1 時,1不能被2整除,執行If 語句的a = a - 1 = 0 -1= -1 ,然後再執行 a=a+1=(- 1)+1= 0
j = 2 時,2能被2整除,執行If 語句的a = a +1 = 0 + 1 = 1
j = 3 時,3不能被2整除,執行If 語句的a = a - 1 = 1 -1= 0 ,然後再執行 a=a+1= 0 + 1 = 1
j = 4 時,4能被2整除,執行If 語句的a = a +1 = 1 + 1 = 2
當 i = 2時,j = 1 時,1不能被2整除,執行If 語句的a = 2 - 1 = 2 -1= 1 ,然後再執行 a=a+1= 1 + 1 = 2
j = 2 時,2能被2整除,執行If 語句的a = a +1 = 2 + 1 = 3
j = 3 時,3不能被2整除,執行If 語句的a = a - 1 = 3 -1= 2 ,然後再執行 a=a+1= 2 + 1 = 3
j = 4 時,4能被2整除,執行If 語句的a = a +1 = 3 + 1 = 4
所以最後輸出 a 的值為 4 .
i=1 , j=1 时j Mod 2 <> 0成立,a=a-1=-1(因为上面a=0);;a = a + 1=0(因为前面a=-1)这时输出a值是0
i=1 , j=2 时j Mod 2 <> 0不成立,a=a-1不执行;a = a + 1=1(因为上面a=0);这时输出a值是1
i=1 , j=3 时j Mod 2 <> 0成立,a=a-1=0(因为上面a=1);;a = a + 1=1(因为前面a=0);这时输出a值是1
i=1 , j=4 时j Mod 2 <> 0不成立,a=a-1不执行;a = a + 1=2(因为上面a=1);这时输出a值是2
i=2 , j=1 时j Mod 2 <> 0成立,a=a-1=1(因为上面a=2);a = a + 1=2(因为前面a=1)这时输出a值是2
i=2 , j=2 时j Mod 2 <> 0不成立,a=a-1不执行;a = a + 1=3(因为上面a=2)这时输出a值是3
i=2 , j=3 时j Mod 2 <> 0成立,a=a-1=2(因为上面a=3);a = a + 1=3(因为前面a=2)这时输出a值是3
i=2 , j=4 时j Mod 2 <> 0不成立,a=a-1不执行;a = a + 1=4(因为上面a=3)这时输出a值是4
所以最后结果就是4.
CommonDialog 控件提供一组标准的操作对话框,进行诸如打开和保存文件,设置打印选项,以及选择颜色和字体等操作。通过运行 Windows 帮助引擎控件还能显示帮助。
一、添加CommonDialog 控件
CommonDialog 控件是一种ActiveX控件,一般情况下,启动VB后,在工具箱中没有公用对话框控件。要使用对话框控件,首先要在工具箱中添加公用对话框控件,步骤如下:
1)“工程”----->“部件”:
2)在“部件”对话框中选择“控件”选项卡,在控件列表框中选择“Microsoft common Dialog control 6.0"
3)单击“确定”,公用对话框就被添加到工具箱中,如下图所示:
二、CommonDialog 控件提供的六种标准对话框
1、显示文件对话框
包括“打开”和“另存”对话框。
2、使用“颜色”对话框
3、使用“字体”对话框
4、使用“打印”对话框
5、使用“帮助”对话框
方法 所显示的对话框
ShowOpen 显示“打开”对话框
ShowSave 显示“另存为”对话框
ShowColor 显示“颜色”对话框
ShowFont 显示“字体”对话框
ShowPrinter 显示“打印”或“打印选项”对话框
ShowHelp 调用 Windows 帮助引擎
下面将分别进行介绍。
三、显示文件对话框
通过使用 CommonDialog 控件的 ShowOpen 和 ShowSave 方法可显示“打开”和“另存为”对话框。
两个对话框均可用以指定驱动器,目录,文件扩展名和文件名。除对话的标题不同外,另存为对话外观上与打开对话相似。
(一)、显示“打开”和“另存为”对话框的步骤:
1、在窗体上建立一个CommonDialog 控件:
2、在窗体上选择CommonDialog 控件后单击右键:
3、选择“属性”,出现“属性页”:
其中:
1)、对话框标题:是“打开”和“另存为”对话框的标题。
2)、文件名称(FileName):用户在“打开”和“另存为”对话框中所选定的文件名。
3)、过滤器(Filter):用于确定文件列表框中所显示文件的类型。该属性值可以是一组元素或用“|”符号分开的分别表示不同类型文件的多组元素组成。
4)、初始化路径(InitDir):初始返回或设置文件目录。用于为打开或另存为对话指定初始的目录。如果此属性没有指定,则使用当前目录。
(二)、实例
1、界面如下图所示:
2、属性设置:
可以在“属性页”进行设置,也可以在代码窗口进行设置。
在“属性页”进行设置:
在代码窗口进行设置:
Option Explicit
Private Sub Command1_Click()
On Error GoTo kk
CommonDialog1.ShowOpen
Image1.Picture = LoadPicture(CommonDialog1.FileName)
kk:
End Sub
Private Sub Form_Load()
CommonDialog1.FileName = "*.bmp"
CommonDialog1.Filter = "Pictures(*.bmp)|*.bmp|所有文件(*.*)|*.*"
CommonDialog1.InitDir = "d:\tu"
End Sub
3、运行效果:
实例2、打开、保存文本文件。
1、界面设计:
2、代码:
Option Explicit
Private Sub Command1_Click()
Dim str1 As String
On Error GoTo kk
CD1.Filter = "(*.txt)|*.txt|(*.*)|*.*"
CD1.InitDir = "c:\windows"
CD1.FileName = "*.txt"
CD1.ShowOpen
Text1.Text = ""
Open CD1.FileName For Input As #1
Do While Not EOF(1)
Line Input #1, str1
Text1.Text = Text1.Text & str1 & Chr(13) & Chr(10)
Loop
Close #1
kk:
End Sub
Private Sub Command2_Click()
On Error GoTo kk
CD1.FileName = "无标题.txt"
CD1.DefaultExt = "Txt"
CD1.Filter = "(*.txt)|*.txt|(*.*)|*.*"
CD1.ShowSave
Open CD1.FileName For Output As #1
Print #1, Text1.Text
Close #1
kk:
End Sub
3、运行效