中易网

为什么这里一定要设置全局变量

答案:2  悬赏:0  
解决时间 2021-03-03 01:03
下面是程序
其中有个变量y
如果不开始设置成全局变量,
y = y + k;
这里就会提示报错说使用了未赋值的局部变量!
前提是我再设置其他(int i, z, k,y;)已经设置后不能使用

//题目:输入某年某月某日,判断这一天是这一年的第几天?
//程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天。
using System;
using System.Collections.Generic;
using System.Text;

namespace 判断天数
{
class Program
{
static int y;
static void Main(string[] args)
{
string i0, z0, k0;
int i, z, k;
Console.WriteLine("欢迎进入判断天数程序:\n下面请跟随程序依次输入年月日");

do
{
Console.WriteLine("请输入年(如1999)");
i0 = Console.ReadLine();
Console.WriteLine("请输入月");
z0 = Console.ReadLine();
Console.WriteLine("请输入日");
k0 = Console.ReadLine();
i = Convert.ToInt32(i0);
z = Convert.ToInt32(z0);
k = Convert.ToInt32(k0);
}
while (z > 12);
switch (z)
{
case 1:
y = 0;
break;
case 2:
y = 31;
break;
case 3: y = 59; break;
case 4: y = 90; break;
case 5: y = 120; break;
case 6: y = 151; break;
case 7: y = 181; break;
case 8: y = 212; break;
case 9: y = 243; break;
case 10: y = 273; break;
case 11: y = 304; break;
case 12: y = 334; break;
default: Console.WriteLine("data error"); break;
}
y = y + k;
Console.WriteLine("您输入的是{0}年{1}月{2}日今天是第{3}日", i, z, k,y);
Console.ReadKey();
}
}
}
最佳答案
1.全局变量在程序开始执行时就分配了并且始终占据某存储单元,直到程序结束才释放,没有定义初值,系统会自动给补上初值。

2. 而局部变量在栈中。C#严格禁止使用未赋值的变量。你只在栈里通过申明划分了大小,但是这个变量并不会由系统自动初始化,分配默认值。

所以区别就显现在这里。

总结:
局部变量最好在申明时就初始化给个值,
后面的使用原则:必须先赋值,再使用。

最后,
你这个程序没有限制严密,比如天数99天,还应该再写代码考虑周全点。
全部回答
可以不设置成全局变量, 但是需要在dfs函数的参数里面添加一个这样的数组, 这样就才可以传递visit数组, 可以传递已经访问的信息。而设置成全局变量的作用就是能传递信息, 不至于,在函数里面重新初始化visit数组,丢失以前访问过的信息。 例如: dfs(...., int visit[]){     //一些代码     dfs(...., visit);     //一些代码 }和这个 int visit[10000]; dfs(....){     //一些代码     dfs(....);     //一些代码 }效果可以是一样的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
晨旺集团怎么去啊,有知道地址的么
e优网吧(深坑店)地址有知道的么?有点事想过
广信动漫特训中心的教学模式是怎么样的?听说
刚才21:55出去买东西回来很不高兴烦,想去妈
wps中公式编辑器编写老是字母在一行的上面怎
计算器上出现flx是什么?_?怎么取消掉
历史上三个公正护法的人物。
甲的五分之二相当于乙,是把()看作‘’1‘
建丰村地址在什么地方,想过去办事
我被一个贵州毕节市黔西县的人骗了2200块钱!
有一首歌 歌词里有一句"瑶瑶......" 其他什么
ARM里bootloader一般放在NAND FALSH哪个地址
腾讯的天天逆战什么时候出,是什么样的玩法?
东巴医馆在哪里啊,我有事要去这个地方
巨明两行玉米收的图片
推荐资讯
fluent如何读取UG文件
食用菌出口 好做吗
塞翁家·蒸点厨房地址在什么地方,想过去办事
第一次做的过程只流一滴血,两天后上厕所又流
gpc测高分子分子量时 聚苯乙烯标准品怎样配制
成语悉心什么护
07版梁祝在哪些台播过,分别是什么时候
颈椎病引起左上肢酸软无力属哪类颈椎病
夏季如何应用防暑药 风油精对中暑无效
lol电八白金五代练到白金一大概多少钱
为了除甲醛,经常开抽油烟机,可以把甲醛排走
大陆NY帽子的专卖店 一顶棒球帽多少钱大概,
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?