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

新手请问while循环的变量作用域有关问题

2012-06-24 
新手请教while循环的变量作用域问题我要写个程序,需要实现的功能是:逐行读取文本内容,判断每行的内容。如果

新手请教while循环的变量作用域问题
我要写个程序,需要实现的功能是:逐行读取文本内容,判断每行的内容。如果所有行都符合要求,那么执行动作A。只要有1行内容不符合要求,那么执行动作B。

我写的程序结构如下
while (文本不为空)
{
 string AAA = 'Initial'; //声明一个变量
  if (本行符合要求)
  {
  读取下一行;
  line++;
  }
  else
  {
  AAA = 'NO';
  break;
  }
//前面这段是为了得到string AAA的值,

//下面根据AAA的值来判断是执行动作A还是动作B(又来一个循环,把文本每一行插入数据库)
  while (AAA= 'NO') //这里的AAA有问题了,一直都是初始值'Initial',不会得到'NO'这个值
  {
  ..
  }
}
需要怎么样才能使第二个循环里面,AAA的值会变为'NO',而不是一直都是声明这个变量时的初始值'Initial'呢?


[解决办法]
定义在外面。
{}块中的变量是无法在外面得到的。
[解决办法]
当AAA=="B"的时候,就Break,退出了第一个While循环,第二个While就不会被执行
只有当AAA == 'Initial'时,才会执行第二个While,所以你在第二个While出得到的AAA总是为初始值
[解决办法]
你的break直接break出while循环了.... 下面红字的while循环是不会执行的
逻辑问题...理清思路,看看break在那里合不合适 还有第二个while到底该写在哪(如果用break的话)
[解决办法]
那就把 AAA 和第二个 while 都放外面

C# code
string AAA = "Initial"; //声明一个变量while (文本不为空){    if (本行符合要求)    {        //读取下一行;        line++;    }    else    {        AAA = "NO";        break;    }    //前面这段是为了得到string AAA的值,}//下面根据AAA的值来判断是执行动作A还是动作B(又来一个循环,把文本每一行插入数据库)while (AAA == "NO") //这里的AAA有问题了,一直都是初始值'Initial',不会得到'NO'这个值{    //..} 

热点排行