質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

2017閲覧

バグの原因がわからない

ahigaisya

総合スコア17

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/03/21 13:39

編集2016/03/28 09:17

javaの学習にとシリアルコードを入力することで残高を追加し、それでくじを引けるようなguiアプリケーションを作成しようと考えております。そこでシリアルコードを入力しボタンをクリックすることでラベルにその金額が表示される機能を実装しました。しかしいつも表示されるのは「0」です。バグの原因がわかりません。
シリアルコードの形式は以下の通りです。
1文字目
g,d,x,v,pのいずれか
2~11文字目
数コード
数コード{
f,a,p,=1
z,g,i,=2
c,b,m,=3
v,j,o=4
d,x,s=5
e,k,r=6
u,t,h=7
q,y=8
l,w=9
n=0
}
複数あるのは生成の際に乱数を用いてシリアルコードの解析を難しくするためです。
下記にソースコードを貼り付けます。

package kujikuji; import java.awt.*; /** * * @author raich */ public class kujikuji extends javax.swing.JFrame { private static final kujikuji meframe = new kujikuji(); /** * Creates new form kujikuji */ public kujikuji() { initComponents(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jButton1 = new javax.swing.JButton(); jScrollPane2 = new javax.swing.JScrollPane(); jTextPane2 = new javax.swing.JTextPane(); jLabel1 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jButton1.setFont(new java.awt.Font("メイリオ", 1, 12)); // NOI18N jButton1.setText("とうろく"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jScrollPane2.setViewportView(jTextPane2); jLabel1.setText("jLabel1"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(28, 28, 28) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 316, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton1)) .addGroup(layout.createSequentialGroup() .addGap(190, 190, 190) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(281, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(22, 22, 22) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE) .addComponent(jScrollPane2)) .addGap(71, 71, 71) .addComponent(jLabel1) .addContainerGap(422, Short.MAX_VALUE)) ); pack(); }// </editor-fold> private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String silialnumn = jTextPane2.getText(); silialnumber(silialnumn); } public void silialnumber(String silialnum){ char[] silnumasone = new char[15]; int[] cord = new int[15]; int lenghtsilial = 11; boolean hanpa ; int fainalmoney; for(int j = 0;j==lenghtsilial;j++){ silnumasone[j] = silialnum.charAt(j); } if (silnumasone[0] == 'a'|| silnumasone[0] == 's'||silnumasone[0] =='v'||silnumasone[0] =='w'||silnumasone[0]=='x'){ hanpa = false; }else if (silnumasone[0] == 'g'||silnumasone[0] == 'd'||silnumasone[0] == 'x'||silnumasone[0] == 'v'||silnumasone[0] == 'p'){ hanpa = true; } if (hanpa = true){ cord[1]= numcord(silnumasone[1])*1000000000; cord[2]= numcord(silnumasone[2])*100000000; cord[3]= numcord(silnumasone[3])*10000000; cord[4]= numcord(silnumasone[4])*1000000; cord[5]= numcord(silnumasone[5])*100000; cord[6]= numcord(silnumasone[6])*10000; cord[7]= numcord(silnumasone[7])*1000; cord[8]= numcord(silnumasone[8])*100; cord[9]= numcord(silnumasone[9])*10; cord[10]= numcord(silnumasone[10]); fainalmoney = cord[1]+cord[2]+cord[3]+cord[4]+cord[5]+cord[6]+cord[7]+cord[8]+cord[9]+cord[10]; String kingaku = String.valueOf(fainalmoney); jLabel1.setText(kingaku); } } public int numcord(char hoge){ int returnnum = 0 ; switch (hoge) { case 'f': case 'a': case 'p': returnnum =1; break; case 'z': case 'g': case 'i': returnnum =2; break; case 'c': case 'b': case 'm': returnnum =3; break; case 'v': case 'j': case 'o': returnnum =4; break; case 'd': case 'x': case 's': returnnum =5; break; case 'e': case 'k': case 'r': returnnum =6; break; case 'u': case 't': case 'h': returnnum =7; break; case 'q': case 'y': returnnum =8; break; case 'l': case 'w': returnnum =9; break; case 'n': returnnum =0; break; default: break; } return returnnum; } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(kujikuji.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(kujikuji.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(kujikuji.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(kujikuji.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new kujikuji().setVisible(true); GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); device.setFullScreenWindow(meframe); } }); } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextPane jTextPane2; // End of variables declaration }

わかりにくい説明でごめんなさい。
また下記urlにnetbeansのプロジェクトフォルダを圧縮したものをupしました。

http://fast-uploader.com/file/7014122909722/(パスワード:0000)

このような初心者は場違いかもしれませんがどうか皆様の豊富な知恵を貸してください。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lib

2016/03/21 14:04 編集

コードを入力する専用のタグボタンがあるので、コードを貼る場合は利用をお願いしたいです。定番のリンクを掲載します。https://teratail.com/blog/article/ba10とhttps://teratail.com/help/avoid-asking もう一度質問を整理していただいてもよろしいでしょうか。案外その中で解決策がみえてくるものです。
ahigaisya

2016/03/21 14:15

初めて利用するので知りませんでした。次回から利用するようにします。
guest

回答2

0

ベストアンサー

ここのfor文がおかしいです。

lang

1for (int j = 0; j == lenghtsilial; j++) { 2 silnumasone[j] = silialnum.charAt(j); 3}

for文の2番目の条件は、「この条件が満たされる間forループを続ける」という意味なので、
j == lenghtsilialだと常に条件を満たさないのでループが常に実行されません。

下記のように、「jlenghtsilial未満である間ループする」ようにしてあげます。
また、ここでは入力silialnumの長さに合わせないと短い入力の場合にエラーになってしまいますので、
入力文字列の長さ(silialnum.length())をlenghtsilialに設定しましょう。

lang

1lenghtsilial = silialnum.length(); 2for (int j = 0; j < lenghtsilial; j++) { 3 silnumasone[j] = silialnum.charAt(j); 4}

投稿2016/03/21 13:58

編集2016/03/21 14:01
argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ahigaisya

2016/03/21 14:14

ありがとうございました。助かりました。
guest

0

ぱっと見、forの条件が間違ってるような。
修正前

java

1for(int j = 0;j==lenghtsilial;j++){

修正後

for(int j = 0;j<lenghtsilial;j++){

投稿2016/03/21 13:57

umed0025

総合スコア851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問