我正在编写一个简单的java和bash程序,但它不起作用。让我知道哪里出错了。
击:
for i in [1..100]; do
echo $i
java prob2 $i
done
Java:
import java.io.*;
public class prob2
{
public static void main( String[] args )
{
int l = args.length;
if ( l == 1 )
{
int num = Integer.parseInt(args[0]);
while ( num != 0 && num != 1)
num = num - 2;
if ( num == 0 )
System.out.println("Even");
else if ( num == 1 )
System.out.println("Odd");
}
}
}
我得到的错误是:
线程“main”中的异常java.lang.NumberFormatException:对于java.lang.Integer.parseInt中java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)的输入字符串:“[1..100]” (Integer.java:492)在prob2.main的java.lang.Integer.parseInt(Integer.java:527)中(prob2.java:10)
答案 0 :(得分:4)
这不是你怎么做bash循环。试试这个:
for i in `seq 1 100`; do
echo $i
java prob2 $i
done
顺便说一句,用于确定数字是奇数还是偶数的更快的算法是将其取模2:
if (num % 2 == 0) {
System.out.println("Even");
} else {
System.out.println("Odd");
}
答案 1 :(得分:4)
你必须使用花括号,而不是数组括号:
for i in {1..100}; do
echo $i
java prob2 $i
done