首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

有关while循环的有关问题

2013-06-26 
有关while循环的问题 ***********************一共2个大问题麻烦明白的高手给解释下谢谢大家了.问题一.cla

有关while循环的问题
 ***********************一共2个大问题麻烦明白的高手给解释下谢谢大家了.
问题一.class Program
    {
      static private int asd;
        static void Main(string[] args)
        {
             
            while (asd < 10)
            {
                Console.WriteLine(asd++);
            }

                       Console.ReadKey();
(1)这里asd不用赋值也while也能循环为什么.(2)如果private int asd前不加static的话Main方法里就运行不了为什么.(是因为Main是静态修饰的吗).
****************************问题二. 这个是打印机的while循环问题.
public partial class Form1 : Form
    {
        private string[] lines;
        private int linesprinted;
.....
....

        private void OnPrintPage(object sender, PrintPageEventArgs e)
        {
    int x = e.MarginBounds.Left;
            int y = e.MarginBounds.Top;
            while (linesprinted < lines.Length)
            {
                e.Graphics.DrawString(lines[linesprinted++], textBoxedit.Font, Brushes.Black, x, y);
                y += 15;
                if (y >=e.MarginBounds.Bottom)
                {
                    e.HasMorePages = true;
                    return;
                }
            }
            linesprinted = 0;
            e.HasMorePages = false;

        } 
(1) 为什么linesprinted=0 在while循环的下面也能循环而不报错未附值.如果把linesprinted注释掉的话会有影响吗感觉这个linesprinted=0是多余的;
(2) private int linesprinted 字段直接在类的方法中能用因为字段和方法都不是静态的?如果加static 会有什么影响吗?  


[解决办法]
简单来讲,成员变量int变量会自动被初始化成0。

如果private int asd前不加static的话Main方法里就运行不了为什么
你说的对,因为Main是static的,必须创建一个Program的实例对象,才能访问asd。

linesprinted是成员变量啊,当然可以访问,另一个方法都可以,别说循环外面了。
用不用static看你需要,static变量属于类,相当于全局变量。如果不加static,每个对象都有一个,互不干涉。

[解决办法]

引用:
Quote: 引用:

简单来讲,成员变量int变量会自动被初始化成0。

如果private int asd前不加static的话Main方法里就运行不了为什么
你说的对,因为Main是static的,必须创建一个Program的实例对象,才能访问asd。

linesprinted是成员变量啊,当然可以访问,另一个方法都可以,别说循环外面了。
用不用static看你需要,static变量属于类,相当于全局变量。如果不加static,每个对象都有一个,互不干涉。
非常感谢你的回答.如果成员变量自动附初值的话是不是方法内的那个linesprinted=0可以省略了.


省略是可以省略,但是如果知道明确的值还是初始化赋值一下比较好。

热点排行