import java.util.*;public class flowDemo{
  public static void main(String[] arges){
    int iPara1,iPara2,iEnd;
    if(arges.length!=3)
    {
      System.out.println("USE :java flowDome parameter1 parameter2 circle");
      System.out.println("parameter1 : 比较条件1,数字类型");
      System.out.println("parameter2 : 比较条件2,数字类型");
      System.out.println("circle :循环次数");
      System.out.println("ego:java flowDome 1 2 5");
      return;
    }else{
      iPara1 = Integer.parseInt(arges[0]);
      iPara2 = Integer.parseInt(arges[1]);
      iEnd = Integer.parseInt(arges[2]);
    }
    //if语句
    if(iPara2>iPara1)
    {
      System.out.println("if 条件满足!");
      System.out.println("第2个数比第1个数大!");
    }
    else
    {
      System.out.println("if 条件不满足!");
      System.out.println("第2个数比第1个数小!");
    }
    //for循环操作
    for(int i=0;i<iEnd;i++)
    {
      System.out.println("这是for 第"+i+"次循环");
    }
    //while循环操作
    int i=0;
    while(i<iEnd)
    {
      System.out.println("这是while 第"+i+"次循环");
      i++;
    }
    //do-while循环操作
    int j=0;
    do
    {
      System.out.println("这是do-while 第"+j+"次循环");
      j++;
    }while(j<iEnd);
  }
}程序运行结果是:
C:\study>java flowDemo
USE :java flowDome parameter1 parameter2 circle
parameter1 : 比较条件1,数字类型
parameter2 : 比较条件2,数字类型
circle :循环次数
ego:java flowDome 1 2 5疑问:String args[]数组不是接收运行时的参数吗?为什么只运行java flowDemo就有结果了,args这个数组的数据是谁传给它的?

解决方案 »

  1.   

    args接收的是命令行参数,java虚拟机传的
      

  2.   

    因为你没有加参数,所以下面的代码被执行。相当于dos程序的/?,就是一个帮助,告诉你应该加什么参数。
    if(arges.length!=3)
    {
    System.out.println("USE :java flowDome parameter1 parameter2 circle");
    System.out.println("parameter1 : 比较条件1,数字类型");
    System.out.println("parameter2 : 比较条件2,数字类型");
    System.out.println("circle :循环次数");
    System.out.println("ego:java flowDome 1 2 5");
    return;
      

  3.   

    按你的运行
    args[0]="C:\study>java"
    args[1]="flowDemo"
    之后才是你要传递进去的参数
      

  4.   

    john_sheep说的话我明白了。因为运行该程序时没有输入参数,所以执行:
    if(arges.length!=3)
    {
    System.out.println("USE :java flowDome parameter1 parameter2 circle");
    System.out.println("parameter1 : 比较条件1,数字类型");
    System.out.println("parameter2 : 比较条件2,数字类型");
    System.out.println("circle :循环次数");
    System.out.println("ego:java flowDome 1 2 5");
    return;我这样运行:java flowDemo 1 2 3
    程序运行结果为:
    if 条件满足!
    第2个数比第1个数大!
    这是for 第0次循环
    这是for 第1次循环
    这是for 第2次循环
    这是while 第0次循环
    这是while 第1次循环
    这是while 第2次循环
    这是do-while 第0次循环
    这是do-while 第1次循环
    这是do-while 第2次循环我明白了。还有一个疑问:skywoodsky() 说的话:按你的运行
    args[0]="C:\study>java"
    args[1]="flowDemo"
    之后才是你要传递进去的参数是什么意思?
      

  5.   

    以你的例子说明
    java flowDemo 1 2 3args[0]=1
    args[1]=2
    args[2]=3个人认为skywoodsky()解释错了
      

  6.   

    我把别的地方的文章转过来
    搂主看看
    ********************
    有时你想在运行程序时将信息传递到一个程序中。这通过将命令行参数(command-line arguments )传递给main() 来实现。命令行参数是程序执行时在命令行中紧跟在程序名后的信息。在Java 程序中访问命令行参数是相当容易的——它们作为字符串存储在传递给main() 的String 数组中。例如,下面的程序显示了调用的所有的命令行参数:// Display all command-line arguments.
    class CommandLine {
        public static void main(String args[]) {
            for ( int i = 0; i < args.length; i++ )
                System.out.println("args[" + i + "]: " + args[i]);
        }

    尝试执行这个程序,命令如下所示:
    java Commandline this is a test 100 -1 
    执行后,你会看到如下输出:
    args[0]: this
    args[1]: is
    args[2]: a
    args[3]: test
    args[4]: 100
    args[5]: -1 
    注意:所有的命令行参数都是以字符串的形式传递的。