Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java代码的bash脚本有什么问题?_Bash - Fatal编程技术网

使用java代码的bash脚本有什么问题?

使用java代码的bash脚本有什么问题?,bash,Bash,我正在编写一个简单的java和bash程序,但它不起作用。让我知道哪里错了 狂欢节: 爪哇: import java.io.*; public class prob2 { public static void main( String[] args ) { int l = args.length; if ( l == 1 ) { int num = Integer.p

我正在编写一个简单的java和bash程序,但它不起作用。让我知道哪里错了

狂欢节:

爪哇:

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");
            }
    }
}
我得到的错误是:


主线程java.lang.NumberFormatException中的异常:对于java.lang.NumberFormatException.forInputStringNumberFormatException.java:65对于java.lang.Integer.parseIntInteger.java:492对于java.lang.Integer.parseIntInteger.java:527对于prob2.mainprob2.java:10


这不是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");
}

这不是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");
}

必须使用大括号,而不是数组括号:

 for i in {1..100}; do 
         echo $i
         java prob2 $i 
    done

必须使用大括号,而不是数组括号:

 for i in {1..100}; do 
         echo $i
         java prob2 $i 
    done

线程主java.lang.NumberFormatException中的异常:用于输入字符串:[1..100]在java.lang.NumberFormatException.forInputStringNumberFormatException.java:65在java.lang.Integer.ParseInteger.java:492在java.lang.Integer.ParseInteger.java:527在prob2.mainprob2.java:10异常显示bash没有将[1..100]解释为序列,而是将其作为列表中的唯一值传递,尝试在$seq 110;中输入i;。我删除了Java标记,因为这个问题中没有Java。与您的问题无关,但您需要查找如何使用模运算符。线程主Java.lang.NumberFormatException中的异常:对于输入字符串:[1..100]在java.lang.NumberFormatException.forInputStringNumberFormatException.java:65在java.lang.Integer.ParseInteger.java:492在java.lang.Integer.ParseInteger.java:527在prob2.mainprob2.java:10异常显示bash没有将[1..100]解释为序列,而是将其作为列表中的唯一值传递,尝试在$seq 110;中输入i;。我删除了Java标记,因为这个问题中没有Java。与您的问题无关,但您需要查找如何使用模运算符。因此,我的算法是…什么是模?在计算中,模运算查找一个数除以另一个数的余数。-所以我的算法是关于…什么是模?在计算中,模运算找到一个数除以另一个数的余数-