c#基础加强版之方法控制流复习-2变量是否初始化的问题
2013-11-20 11:28
281 查看
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
今天在看老师讲课的时候,发现一个问题,即上上篇学习笔记《小菜学try语句,又被trouble给cathch住了》里提到的变量未被赋值(没有初始化)的问题.以下左边的代码为老师写的代码,MyFirstMehod方法里的num变量声明时也未赋值(没有初始化),可是并没有报错.右边为之前我写的一个ReadInt的方法,编译错误,错误为:使用了为赋值的局部变量Num1.我感觉二者没有什么差别,为什么左边的MyFirstMethod方法没有错误,而右边的ReadInt方法就有错误.
我将ReadInt()方法改为:
这样就不存在Num1没有被赋值的错误了.为什么呢?
今天在看老师讲课的时候,发现一个问题,即上上篇学习笔记《小菜学try语句,又被trouble给cathch住了》里提到的变量未被赋值(没有初始化)的问题.以下左边的代码为老师写的代码,MyFirstMehod方法里的num变量声明时也未赋值(没有初始化),可是并没有报错.右边为之前我写的一个ReadInt的方法,编译错误,错误为:使用了为赋值的局部变量Num1.我感觉二者没有什么差别,为什么左边的MyFirstMethod方法没有错误,而右边的ReadInt方法就有错误.
static void MyFirstMehod(){ int num; Console.WriteLine("请输入一个数字"); string str = Console.ReadLine(); while (true){ try{ num=Convert.ToInt32(str); break; } catch{ Console.WriteLine("输入有误,请重输"); str = Console.ReadLine(); } } Console.WriteLine( num); } | static void ReadInt(){ int Num1; bool IsNumber = false; do{ Console.WriteLine("请输入一个整数"); try{ Num1=Convert.ToInt32(Console.ReadLine()); IsNumber = true; } catch{ Console.WriteLine("您的输入有误"); } }while (IsNumber == false); Console.WriteLine(Num1); } |
static void ReadInt() { int Num1; do { Console.WriteLine("请输入一个整数"); try { Num1 = Convert.ToInt32(Console.ReadLine()); break; } catch { Console.WriteLine("您的输入有误"); } } while (true); Console.WriteLine(Num1); }
这样就不存在Num1没有被赋值的错误了.为什么呢?
相关文章推荐
- 黑马程序员-c#基础加强版之方法控制流复习-2变量是否初始化的问题
- c#基础加强版之方法控制流复习-1关于方法的讲解
- 黑马程序员-c#基础加强版之方法控制流复习-1关于方法的讲解
- c#基础加强版之方法控制流复习-3控制台打印密码
- 黑马程序员-c#基础加强版之方法控制流复习-3控制台打印密码
- [C#]变量初始化问题:字段初始值无法引用非静态字段、方法或属性
- C#变量初始化问题:字段初始值无法引用非静态字段、方法或属性
- C#变量初始化问题:字段初始值无法引用非静态字段、方法或属性
- C# 基础加强(四) 静态类、静态方法
- C# 类中变量初始化:字段初始值无法引用非静态字段、方法或属性
- 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
- 用《叩响C#之门》复习C#基础知识 第二章 变量
- [C#基础]2.局部变量的初始化(要求体现出,不初始化直接使用的后果)
- c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法
- C# 基础加强(五) 抽象类、抽象方法
- 复习 c#基础加强
- 【JAVA基础小问题】Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
- 复习一下基础:'C# 值类型和引用类型 以及作为方法参数的区别'
- 关于成员变量和局部变量是否都会被默认初始化的问题