C#入门经典第五版练习求解!
c#吧
全部回复
仅看楼主
level 8
我是个菜鸟。。刚刚学c#
有个问题!
这个练习,我写出来了
但是有个问题
如果第一个数字是大於10
而第二个数字则小於10
就会显示成功。。。就是不能同时判定两个数字
这是我的代码。。。求高人判定
谢谢了
2013年02月08日 20点02分 1
level 6
&& ---> ||
2013年02月08日 23点02分 2
不要耽误新手,谢谢
2013年02月18日 11点02分
level 1
题目要求是拒绝2个数都大于10的情况。用&&是对的。
2013年02月08日 23点02分 3
level 11
if(a<10||b<10){输出}else{return}
2013年02月09日 01点02分 4
大哥你牛b,你利害[Love],感谢大哥的方法
2013年02月09日 05点02分
你好,我觉得用&&是对的,题目要求拒绝输入两个都大于10 的数字,也就是应许有一个大于10
2013年02月16日 04点02分
@Shall_die 那你可不可以理解为只要有一个数小于10就符合题意了呢?
2013年02月16日 05点02分
level 9
&& 换成 & 试试看
2013年02月09日 04点02分 5
呵呵,刚才去看了下&& 和 & 的区别,我记错了...楼上是对的..
2013年02月09日 04点02分
level 4
-_-||
lz
别用goto了,不好理解啊。。
2013年02月10日 09点02分 6
不会用其它跳转。。。
2013年02月10日 09点02分
回复 还我工口之魂 :while(true)加break与continue的控制也可以的
2013年02月18日 11点02分
level 5
private int a;
private int b;
private static void Main()
{
Program a = new Program();
a.A();
Console.ReadLine();
}
private void A()
{
Console.WriteLine("Input a");
this.a = Convert.ToInt16(Console.ReadLine());
if (this.a > 10)
{
Console.WriteLine("A is too big.");
A();
}
else
{
B();
}
}
private void B()
{
Console.WriteLine("Input b");
this.b = Convert.ToInt16(Console.ReadLine());
if (this.b > 10)
{
Console.WriteLine("B is too big.");
B();
}
else
{
Console.WriteLine("A is {0} and B is {1}",this.a,this.b);
}
}
垃圾= =
2013年02月12日 09点02分 7
新手好不好,我知你牛b
2013年02月12日 09点02分
回复 还我工口之魂 :同是新手
2013年02月12日 09点02分
为了面向对象而面向对象,另外应该尽量少的使用全局变量,我是你我会考虑把int类型换成泛型
2013年02月18日 11点02分
回复 lr5420511 :global不好吗?
2013年02月18日 11点02分
level 5
这个简单点
private static void Main()
{
bool A_isOk = false;
bool B_isOk = false;
int a;
int b;
do
{
Console.WriteLine("Input A:");
a = Convert.ToInt16(Console.ReadLine());
if (a > 10)
{
Console.WriteLine("A is too big");
}
else
{
A_isOk = true;
}
} while (!A_isOk);
do
{
Console.WriteLine("Input b:");
b = Convert.ToInt16(Console.ReadLine());
if (b > 10)
{
Console.WriteLine("B is too big");
}
else
{
B_isOk = true;
}
} while (!B_isOk);
if (A_isOk && B_isOk)
{
Console.WriteLine("A is {0} and B is {1}",a,b);
}
Console.ReadLine();
}
2013年02月12日 10点02分 8
你直接while(true)不就完了。。
2013年02月16日 14点02分
回复 小涵死于凌晨丶 :while true不喜欢 会更加复杂
2013年02月16日 14点02分
回复 po159741 :啊?求将具体原理 while(true)不是更简洁么?
2013年02月16日 15点02分
回复 小涵死于凌晨丶 :因为我喜欢验证 这样一来 就能保证程序的变数一定正确 要不你用无限回圈写个一模一样功能的程序出来
2013年02月16日 15点02分
level 11
目测楼主的代码没有问题啊,什么情况?
题目的意思是:拒绝输入2个都大于10的数字,就是(a>10&&b>10)这种情况。
楼主是不是会错意了,我觉得你的代码没问题
2013年02月12日 13点02分 9
他的代码有问题。当a输入小于10时,&&只判断前面的,后面的就不判断了。知道吧。直接就是假,就没有GOTO,
2013年02月15日 06点02分
回复 ken83417 :a<10的时候就直接跳转到else,是这个意思么?但是题目不就是这个意思么。当a>10且b>10的时候是错的,不成立,执行goto重新开始,而a和b之中有一个或两个都小于10,则成立
2013年02月16日 04点02分
回复 Shall_die :当a<10时,就不判断b了,直接就跳到else去了。这是短路判断。或判断也是一样。第一个是true,就不会判断或后面的第二个数了。
2013年02月16日 13点02分
level 11
cao...这道题我当年在第三版上面也做过,我这回看了很久,题目应许一个数字大于10,2个都大于10不行.
如果用&&,就是拒绝a>10&&b>10的情况。
如果用||,就是接受a<=10||b<=10的情况,4楼添上"="
我记得&&是先判断前面的,如果前面的不成立后面的就不判定了,增快了程序的运行速度,减少工作量,而&是前面后面都要判断,如果前面不成立,后面也还要判断,本质上没有区别,不知道跟2楼5楼记得是不是一样。
这回不知道我是不是犯2 了,即使犯2也没事,让我巩固一下基础知识。
但是我看了许久,确实是这样没错啊,楼主的代码是对的——!
@小小已然
@你妹_伤不起
@让不让注册_
请帮忙看看,我有点强迫症了都
2013年02月16日 05点02分 10
2013年02月16日 05点02分
其实就是0 and x=0 和1 or x=1的意思
2013年02月16日 05点02分
楼主代码是对的
2013年02月16日 14点02分
回复 小小已然 :心愿已了[Love]
2013年02月16日 14点02分
level 11
楼主的代码不能接着重新输入吧
2013年02月16日 06点02分 12
level 4
劝你忘记goto这个东西
2013年02月16日 15点02分 13
level 2
goto可以用do...while代替
2013年02月17日 13点02分 14
level 12
麦田
2013年02月17日 13点02分 15
[拍砖]
2013年02月17日 16点02分
level 1
(a>10 && b>10) 的意思a和b必须同时大于10才为真。只要一个不大于10就为假,这样就到else语句里去了。
只需改为(a>10 || b>10)就会正确,意思是a和b有一个大于10就为真,否则进入else语句。
2013年02月17日 14点02分 16
这样符合题目的意思么?
2013年02月19日 13点02分
回复 Shall_die :哦哦,题目看错了[囧]。代码其实没错,可挑剔的是用了goto
2013年02月19日 13点02分
回复 Shall_die :one的位置似乎不妥,会导致a,b的重复定义。
2013年02月19日 14点02分
回复 好学好学生好 :个人觉得,局部变量么,似乎影响不大...goto不是最好别用,而是要用在需要的地方。这里用goto好像没什么问题,不过one的位置放在a,b定义的下面当然更好
2013年02月20日 00点02分
level 1
bool b=!( (var1>10)&(var2>10)),先与再非
2014年05月03日 01点05分 17
使用&&会有布尔短路的情况发生,建议不要使用
2014年05月03日 01点05分
level 10
只有a大于10并且b大于10 才会输出 请重新输入 吧 ,两者都满足才会输出这个 不晓得我理解错没
2014年05月03日 01点05分 18
1