求修正啊!

问题描述

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace面向对象聊天机器人1{classProgram{staticvoidMain(string[]args){机器人r1=new机器人();r1.Name="小米";r1.Eat(5);机器人r2=new机器人();r2.Name="小艾";r2.Eat(10);Console.WriteLine("请选择你要与之聊天的机器人:1→小米,2→小艾");机器人r;//对机器人做选择stringstr=Console.ReadLine();if(str=="1"){r=r1;//r指向r1指向的对象;}elseif(str=="2"){r=r2;}else{Console.WriteLine("输入错误,请重新选择!");}r.SayHello();//此处报错,说使用了未赋值的局部变量r,求修正,急求!!!谢谢!while(true){stringstr1=Console.ReadLine();r.Speak(str1);}Console.ReadKey();}class机器人{publicstringName{set;get;}privateintFullLevel{set;get;}publicvoidSayHello(){Console.WriteLine("我叫{0}",Name);}publicvoidEat(intFoodCount){if(FullLevel>100){return;}FullLevel=FullLevel+FoodCount;}publicvoidSpeak(stringstr){if(FullLevel<=0){Console.WriteLine("不说了,饿死了!");return;}if(str.Contains("名字")||str.Contains("姓名")){this.SayHello();//类的方法调用类中另外的方法;}elseif(str.Contains("女朋友")){Console.WriteLine("年龄太小,不予考虑!");}else{Console.WriteLine("你在说神马?");}FullLevel--;}}}}

解决方案

解决方案二:
帮你改了,classProgram{staticvoidMain(string[]args){机器人r1=new机器人();r1.Name="小米";r1.Eat(5);机器人r2=new机器人();r2.Name="小艾";r2.Eat(10);Console.WriteLine("请选择你要与之聊天的机器人:1→小米,2→小艾");机器人r=new机器人();//那个错误的主要原因是你没有new一个对象,我觉得好奇怪,上面那些r1你就会new一个对象,为什么到了这里就不会了??//对机器人做选择stringstr=Console.ReadLine();if(str=="1"){r=r1;//r指向r1指向的对象;}elseif(str=="2"){r=r2;}else{Console.WriteLine("输入错误,请重新选择!");}r.SayHello();//此处报错,说使用了未赋值的局部变量r,求修正,急求!!!谢谢!while(true){stringstr1=Console.ReadLine();r.Speak(str1);}//Console.ReadKey();}class机器人{publicstringName{set;get;}privateintFullLevel{set;get;}publicvoidSayHello(){Console.WriteLine("我叫{0}",Name);}publicvoidEat(intFoodCount){if(FullLevel>100){return;}FullLevel=FullLevel+FoodCount;}publicvoidSpeak(stringstr){if(FullLevel<=0){Console.WriteLine("不说了,饿死了!");return;}if(str.Contains("名字")||str.Contains("姓名")){this.SayHello();//类的方法调用类中另外的方法;}elseif(str.Contains("女朋友")){Console.WriteLine("年龄太小,不予考虑!");}else{Console.WriteLine("你在说神马?");}FullLevel--;}}}

解决方案三:
你输入非1、2的数字,不就造成r为null了嘛。
解决方案四:
在使用之前给你的R赋个初始值就行,就像楼上说的,如果你的人既不是1也不是2就会出现null的情况

时间: 2025-01-20 16:48:57

求修正啊!的相关文章

vb-vs2012 热键无法正常注册

问题描述 vs2012 热键无法正常注册 Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As DelegateWindowProc) As Long Public Declare Function CallWindowProc Lib "u

刚学的Hibernate求解session的关闭问题

问题描述 package com.pb.hibernate.util;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtil {private static Session session;private HibernateUtil(){}static{buildSession();}priv

java-JAVA 我想在10到1000之间打印各个数位之和为5的数字,这样写有什么错,新手求大神指点

问题描述 JAVA 我想在10到1000之间打印各个数位之和为5的数字,这样写有什么错,新手求大神指点 public class Demo1 { public static void main(String []args){ int n=10; int t=n; int sum=0; while(t<=1000) { t++; sum=sum+t%10; t=t/10; } if(sum==5) { System.out.println(""各个数位之和为5的有:"&q

c#解决方案求大神绑蔓帮忙

问题描述 c#解决方案求大神绑蔓帮忙 我又两个解决方案,想合成一个,可以合成一个吗?求大神帮忙!急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 解决方案 可以,将其中一个编译为dll,另一个编译为exe,然后后者调用前者. 也可以分别编译,用ilmerge合并,参考:http://blog.sina.com.cn/s/blog_801939a70100vgar.html 解决方案二: 把两个项目弄到一块 重新生成下解决方案不就好了? 解决方案三: 新建一个解决方

atmega128 1-atmega128 相位修正pwm OC1C和OC3C不能输出

问题描述 atmega128 相位修正pwm OC1C和OC3C不能输出 初始化代码如下void pwm1_init(){ TCCR1B=0X00;//STOP TCNT1H=0X00; TCNT1L=0X00; ICR1H=0X24;//SET TOP ICR1L=0; OCR1AH=0X02;OCR1AL=0XEE;OCR1BH=0X02;OCR1BL=0XEE;OCR1CH=0X02;OCR1CL=0XEE;//initialTCCR1A|=(1<<WGM31);//WGM3:0=101

java-急求大神解答,这个是什么错误?怎么解决?

问题描述 急求大神解答,这个是什么错误?怎么解决? HTTP Status 500 - type Exception report message description The server encountered an internal error that prevented it from fulfilling this request. exception java.lang.NullPointerException com.sanqing.action.AddVoteAction.e

泛型-一个继承的问题,求解答。

问题描述 一个继承的问题,求解答. package 泛型限定; public class Person { private String name; public Person() { // TODO Auto-generated constructor stub } public Person(String name) { super(); this.name = name; } public String getName() { return name; } public void setN

java-小白求助,求大神帮忙修改下代码

问题描述 小白求助,求大神帮忙修改下代码 我的条件是condition=1|2|3|4|5.... if (source.getProperty(""condition"" + NUM).equals(""1"")) { return p.panduan1(readrow source); } else if (source.getProperty(""condition"" + NUM

关于百度的umeditor,配置的路径不对,上传图片失败,求大神给我看看

问题描述 页面部分<scriptsrc='./umeditor1_2_2-utf8-net/third-party/jquery.min.js'type='text/javascript'></script><linkhref="./umeditor1_2_2-utf8-net/themes/default/css/umeditor.css"type="text/css"rel="stylesheet"><