gpt4 book ai didi

java - 为什么Java跳过For语句?

转载 作者:行者123 更新时间:2023-12-02 10:42:12 24 4
gpt4 key购买 nike

我是Java新手。我正在使用实现文本的方面情感分析的代码。我知道该代码应该可以工作,但是不知何故我一直收到以下错误。

  ----jGRASP exec: java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,suspend=y,server=y sto2.STO2Core
----jGRASP: connected to debugger.
Exception in thread "main" java.lang.Exception: Alpha should be specified as a positive real number.

----jGRASP debugger: run in canvas ended
at sto2.STO2Core.main(STO2Core.java:114)

这是我得到错误的那一行的主要功能代码
public static void main(String [] args) throws Exception {
int numTopics = 10;
int numIterations = 100;
int numSenti = 2;
int numThreads = 1;
String inputDir = null;
String outputDir = null;
String dicDir = null;
double alpha = -1;
double [] betas = null;
double [] gammas = null;
String [] betasStr = null;
String [] gammasStr = null;
boolean randomInit = false;

String sentiFilePrefix = "SentiWords-";
String wordListFileName = "WordList.txt";
String docListFileName = "DocumentList.txt";
String wordDocFileName = "BagOfSentences.txt";


for (int i = 0; i < args.length/2; i++) {
String option = args[2*i];
String value = args[2*i+1];
if (option.equals("-t")) numTopics = Integer.valueOf(30);
else if (option.equals("-s")) numSenti = Integer.valueOf(2);
else if (option.equals("-i")) numIterations = Integer.valueOf(1000);
else if (option.equals("-th")) numThreads = Integer.valueOf(3);
else if (option.equals("-d")) inputDir = value.replaceAll("T:/Summer 2017/ASUM/ASUM/Test data", "/").replaceAll("/$", "");
else if (option.equals("-o")) outputDir = value.replaceAll("T:/Summer 2017/ASUM/ASUM/Output", "/").replaceAll("/$", "");
else if (option.equals("-dic")) dicDir = value.replaceAll("T:/Summer 2017/ASUM/ASUM/Test data", "/").replaceAll("/$", "");
else if (option.equals("-a")) alpha = Double.valueOf(0.1);
else if (option.equals("-b")) betasStr = value.split("0.001/0.1/0");
else if (option.equals("-g")) gammasStr = value.split("1/1");
else if (option.equals("-r")) randomInit = value.toLowerCase().equals("true")?true:false;
}
if (inputDir == null) inputDir = ".";
if (outputDir == null) outputDir = new String(inputDir);
if (dicDir == null) dicDir = new String(inputDir);

// Exceptions
if (!new File(inputDir).exists()) throw new Exception("There's no such an input directory as " + inputDir);
if (!new File(outputDir).exists()) throw new Exception("There's no such an output directory as " + outputDir);
if (!new File(dicDir).exists()) throw new Exception("Tehre's no such a dictionary directory as " + dicDir);

if (alpha <= 0) throw new Exception("Alpha should be specified as a positive real number.");

当我执行程序时,如果似乎没有运行任何行。问题的根源是什么?
谢谢!

最佳答案

[] args永远不能为null,但如果在运行应用程序时不传递任何参数,它将为空数组。
使用此版本的for语句时,请记住:

  • 初始化表达式初始化循环;当循环开始时,它执行一次。
  • 当终止表达式的计算结果为false时,循环终止。
  • 每次循环迭代后都会调用增量表达式。对于该表达式,增加或减少值是完全可以接受的。

  • 如果您的条件在第一次迭代之前为假( args.lenght为0且 i为0。0不少于0)-应用程序将不会进入循环。
    enter image description here

    关于java - 为什么Java跳过For语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44335595/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com