程序目的是判断奇数和偶数publice class Test{
publice sataic void main (string[]gras )
{
int(n=100,n>=1000,n++)
System.out.println(n%2=0?A;B)
}
找出错误,不要直接给代码
publice sataic void main (string[]gras )
{
int(n=100,n>=1000,n++)
System.out.println(n%2=0?A;B)
}
找出错误,不要直接给代码
楼主【tteesstt】截止到2008-07-13 12:26:07的历史汇总数据(不包括此帖):
发帖的总数量:103 发帖的总分数:6200 每贴平均分数:60
回帖的总数量:71 得分贴总数量:5 回帖的得分率:7%
结贴的总数量:101 结贴的总分数:5900
无满意结贴数:0 无满意结贴分:0
未结的帖子数:2 未结的总分数:300
结贴的百分比:98.06 % 结分的百分比:95.16 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
值得尊敬
publice?
这句是打算写for循环吗?int(n=100,n>=1000,n++)
n=100;n>=1000是什么思路?
publice --> public
sataic --> static
string --> String
int(n=100,n>=1000,n++)-->for(int n=100;n>=100;n++)
A B 都没定义
My God ! 最后还少个“}”
public class Test{
public static void main(String[] args) {
for(int i=100;i<=1000;i++){
System.out.println((i%2==0)?'A':'B');
}
}
}
{
public static void main(String[] args)
{
for(int n=100;n<=1000;n++)
System.out.println((n%2=0)? "A":"B");
}
}
{
public static void main(String[] args)
{
for(int n=100;n <=1000;n++)
System.out.println((n%2=0)? "A":"B");
}
}
错误1:publice应该为public
错误2:sataic应该为static
错误3:缺少一个}
错误4:n%2=0应该是想判断n%2==0吧
错误5:A;B应该为A:B
错误6:System.out.println(n%2=0?A;B)后面缺少";"
错误7:int(n=100,n>=1000,n++)应该是一个for循环
错误8:n>=1000应该是n<=1000
错误9:A:B,A,B均为定义
错误10:string[]应该为String[]
错误11:(int n=100,n>=1000,n++)要用分号
下面的方法意图确定它那唯一的参数是否是一个奇数。这个方法能够正确运转吗?
public static boolean isOdd(int i) {
return i % 2 == 1;
}
奇数可以被定义为被 2 整除余数为 1 的整数。表达式 i % 2 计算的是 i 整除 2 时所产生的余数,因此看起来这个程序应该能够正确运转。遗憾的是,它不能;它在四分之一的时间里返回的都是错误的答案。
为什么是四分之一?因为在所有的 int 数值中,有一半都是负数,而 isOdd 方法对于对所有负奇数的判断都会失败。在任何负整数上调用该方法都回返回 false,不管该整数是偶数还是奇数。
这是 Java 对取余操作符(%)的定义所产生的后果。该操作符被定义为对于所有的 int 数值 a 和所有的非零 int 数值 b,都满足下面的恒等式:
(a / b) * b + (a % b) == a
换句话说,如果你用 b 整除 a,将商乘以 b,然后加上余数,那么你就得到了最初的值 a 。该恒等式具有正确的含义,但是当与 Java 的截尾整数整除操作符
相结合时,它就意味着:当取余操作返回一个非零的结果时,它与左操作数具有相同的正负符号。当 i 是一个负奇数时,i % 2 等于 -1 而不是 1, 因此 isOdd 方法将错误地返回 false。为了防止这种意外,请测试你的方法在为每一个数值型参数传递负数、零和正数数值时,其行为是否正确。
这个问题很容易修正。只需将 i % 2 与 0 而不是与 1 比较,并且反转比较的含义即可:public static boolean isOdd(int i) {
return i % 2 != 0;
}如果你正在一个性能临界(performance-critical)环境中(对性能要求高的环境中)使用 isOdd 方法,那么用位操作符AND(&)来替代取余操作符会显得更好:public static boolean isOdd(int i) {
return (i & 1) != 0;
}总之,无论你何时使用到了取余操作符,都要考虑到操作数和结果的符号。该操作符的行为在其操作数非负时是一目了然的,但是当一个或两个操作数都是负数时,它的行为就不那么显而易见了。
for (int n = 100; n >= 1000; n++) {
System.out.println((n % 2 == 0) ? (n + "是偶数") : (n + "是奇数"));
}
}}这个是楼主本意吧。大家注意:这个 for 不是死循环,因为 n 会溢出。
for (int n = 100; n >= -1000; n++) {
System.out.println((n % 2 == 0) ? (n + "是偶数") : (n + "是奇数"));
}
}}
publice<这里> sataic<这里static> void main (string<这里String>[]gras<这里args[]> )
{
int<这里是for吧?>(n=100,<here>n>=1000,<here>n++(这句里;))
System.out.println(n%2=0?A;B) <这里“;”,变量>
}
貌似我就找这么多了
2、第二行开头应为:public
3、静态关键字应为:static
4、main参数应为:String[] gras
5、for语句错误,应为:for(int n = 100; n <= 1000; n++)
6、n%2=0表示相等应该用==
7、A和B没有定义,如果是字符串应该用引号括起来
8、结尾少一个“}”这道题的意义是什么?考察读者是否细心?
for (int n = -100; n <= 100; n++) {
System.out.println((n % 2 != 0) ? (n + "是奇数") : (n + "是偶数"));
}
}}
public class Test
{
public static void main(String[] args)
{
for(int n=100;n <=1000;n++)
System.out.println((n%2=0)? "A":"B");
}
}
2. publice sataic void main (string[]gras )
3. {
4. int(n=100,n>=1000,n++)
5. System.out.println(n%2=0?A;B)
6. }语法错误(这能算语法错误吗?):
1. publice -> public
2. publice -> public sataic -> static string -> String
3. 无
4. int(n=100,n>=1000,n++) -> for (int n = 100; n >= 1000; n++)
5. = -> == ; -> : A -> "A" B -> "B"
6. 无语义错误(这个倒有点意思):
4. 语法错误纠正后为 for (int n = 100; n >= 1000; n++) 但这个循环的循环体永远不会执行,所以要改为
for (int n = -100; n <= 100; n++) 来测试第5行 -100 到 100 间整数奇偶性测试的表达式是否正确。
5. 语法错误纠正后为 n % 2 == 0,要改为 n % 2 != 0 要用它来判断 n 是否是奇数,而不是用 n % 2 == 0 来判断 n 是否是偶数,详细解释见 14楼。不太好的地方:
2. gras -> args 参数名要有意义(虽然不是必须的)。全部改正后的最终结果:public class Test { public static void main(String[] args) {
for (int n = -100; n <= 100; n++) {
System.out.println((n % 2 != 0) ? (n + "是奇数") : (n + "是偶数"));
}
}}
public static void main(String[] args){
for (int n = -100; n <= 100; n++) {
System.out.println((n % 2 != 0) ? (n + "是奇数") : (n + "是偶数"));
}
}
三目运算符
?前应该是boolean
A :B 应该是冒号
publice class Test{ //publice:public
publice sataic void main (string[]gras ) publice:public sataic:static string:String
{
int(n=100,n>=1000,n++) //应该是for(int n=100;n>=1000;n++)
System.out.println(n%2=0?A;B) //n%2=0?应该是n%2==0? A和B是什么东西,如果是字符应该是"A":"B",后面还少了个";"
}//还少个"}"呢
楼主是在考验大家的细心程度吗?
{
for(int n=100;n<=1000;n++)
System.out.println(n%2==0? 'A':'B');}}
public static void main(String[] gras) {
for (int n = 100; n <= 1000; n++) {
System.out.println(n % 2 == 0 ? "A" : "B");
}
}
}
该有的上面的应该都说过了,可能还会夹杂着一些全角字符,比如空格什么的
string S应大写
不是gras而是 args
int(n=100;n>=1000;n++)应改成for(int n=100;n<=1000;n++)
System.out.println(n%2==0?"a":"b");