重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

public class AAA{
public static void main(String args[]){
System.out.println("チェック開始");

int ContainerA,ContainerB,ContainerC;
String PP = "Sweets";

if (args[0].length() != 1 ){        // 引数の数が1以外の場合
{
ContainerA = 1;       // 1をエラーコードに設定
}
else if(!args[0].equalsIgnoreCase("cake")
&& !args[0].equalsIgnoreCase("manjyu"))       //引数が CAKE でも MANJYU でもない場合(大/小文字区別せず)
{
ContainerC = 99;      // 99をエラーコードに設定
}
else      // それ以外の場合
{
ContainerB = 0;     // 0をエラーコードに設定
}

} else if(ContainerB == 0){       // もしエラーコードが0の場合
{
System.out.println(PP + "?"); //("商品名+?")を表示
}
if(ContainerA == 1)      // エラーコードが1の場合
{
System.out.println("プログラム終了");
} else if(ContainerC == 99){       // エラーコードが99の場合
System.out.println("プログラム終了");
}
} else{        //それ以外の場合(正常終了処理)
System.out.println("正常終了");

}
}
}

上記のソースはコンパイルできないのですが、どこがおかしいのでしょうか?
また、条件分岐が ifやelseしか使い方がよくわからないので、他のよい方法がありましたら教えてください。

A 回答 (3件)

・ 全角スペースは、プログラムの中で半角スペースとして使ってはいけません。



・ 変数は、初期化するか必ず値が設定されるように、プログラムを組む必要があります。

public class AAA {
public static void main(String args[]) {
System.out.println("チェック開始");

int ContainerA = -1, ContainerB = -1, ContainerC = -1;
String PP = "Sweets";

if (args[0].length() != 1) { // 引数の数が1以外の場合
ContainerA = 1; // 1をエラーコードに設定
} else if (!args[0].equalsIgnoreCase("cake")
&& !args[0].equalsIgnoreCase("manjyu")) // 引数が CAKE でも MANJYU
// でもない場合(大/小文字区別せず)
{
ContainerC = 99; // 99をエラーコードに設定
} else // それ以外の場合
{
ContainerB = 0; // 0をエラーコードに設定
}

if (ContainerB == 0) { // もしエラーコードが0の場合
{
System.out.println(PP + "?"); // ("商品名+?")を表示
}
if (ContainerA == 1) // エラーコードが1の場合
{
System.out.println("プログラム終了");
} else if (ContainerC == 99) { // エラーコードが99の場合
System.out.println("プログラム終了");
}
} else { // それ以外の場合(正常終了処理)
System.out.println("正常終了");

}
}
}

この回答への補足

ありがとうございます。
コンパイルはできるようになりましたが、
実行の時、引数に何をいれてもエラーにならず、正常終了になってしまいます。
どうすればよいのでしょう?

補足日時:2008/07/17 06:16
    • good
    • 0

以下のコードを参考にしてみてください。


------------------------------------------------------------
public class AAA {
public static void main(String args[]) {
System.out.println("チェック開始");

int errorCode = -1;
String PP = "Sweets";

if (args.length != 1) { // 引数の数が1以外の場合
errorCode = 1; // 1をエラーコードに設定
} else if (!args[0].equalsIgnoreCase("cake")
&& !args[0].equalsIgnoreCase("manjyu")) {
errorCode = 99; // 99をエラーコードに設定
} else {
errorCode = 0; // 0をエラーコードに設定
}

if (errorCode == 0) {
System.out.println(PP + "?"); // ("商品名+?")を表示
System.out.println("プログラム終了");
} else { // それ以外の場合(正常終了処理)
System.out.println("正常終了");

}
}
}
    • good
    • 0
この回答へのお礼

ありがとうございます。
できました~。

お礼日時:2008/07/29 01:09

引数の数は「args.length」で求まります。


「args[0].length」だと「最初の引数となる文字列の長さ」になってしまいます。

実際に引数に何も渡さず実行してみてください。
引数が0個だとエラーとかではなく、例外が発生するはずです。

この回答への補足

できました。ありがとうございます。

追記したい質問があるのですが

このエラーコードを入れる変数を1つにして、
同様の動作をさせたいのですが、
どのように組み替えればよいか、よくわからないので
どなたかご教授いただけないでしょうか?

補足日時:2008/07/17 10:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!