- PR -

変数の宣言の場所について教えてください。

投稿者投稿内容
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-10-26 16:37
引用:

komeyさんの書き込み (2005-10-26 13:13) より:
私は、switch-case文を使う際はできるだけ各caseに{}を付けるようにしています。
文法上、case文には{}は要らないので、各caseで変数を共有することができますが、そうしてしまうとswitch-case文に慣れていない人はスコープを見誤ることがあるためです。
変数を共有したい場合は、switch文の前に宣言しています。


そんな書き方をしなければならないようなところでswitchを使わないし、そもそもJavaで
switch文を使うことが滅多にありません。対象が携帯とか組み込みだとありそうですけどね。
S_Tatsu
ベテラン
会議室デビュー日: 2005/05/13
投稿数: 58
お住まい・勤務地: 東京
投稿日時: 2005-10-26 16:50
引用:

仮引数と実引数の名前が同じで問題ないか、ということですね。まったく問題ないというか、
よくあることです。


uk様ありがとうございます。前からどうするのがよいのか疑問に思っていたので
おかげさまで解決しました。

switch-case文でcaseに{}をつけてみたところ個人的に見やすいなと思いました。

int a = 1;
switch (a)
{
case 1:
{
int b = 0;
・・・
break;
}
case 2:
{
int b = 0;
・・・
break;
}
}

最初は次のように記述してしまい文法エラーになりました^^;
int a = 1;
switch (a)
{
{case 1:
int b = 0;
・・・
break;
}
{case 2:
int b = 0;
・・・
break;
}
}

インスタンスイニシャライザとはいうの初めて聞きました。。Googleなどで調べて
みます。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-10-26 16:53
コード:
そんな書き方をしなければならないようなところでswitchを使わないし、そもそもJavaで 
switch文を使うことが滅多にありません。対象が携帯とか組み込みだとありそうですけどね。


switch文って使わないっすかね〜?
enumでも使えるようになったので便利だと思うのですが・・・
ストリームの処理とかでもifより使いやすいと思いますよ。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2005-10-26 17:17
ちまい処理を分ける場合とかには、使ってますね。
stateとかで条件分岐を回避できることも多い、ってことでは。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-10-27 12:31
引用:

かつのりさんの書き込み (2005-10-26 16:53) より:
switch文って使わないっすかね〜?
enumでも使えるようになったので便利だと思うのですが・・・


2年位前に作った結構複雑なシステムで調べてみると、javaソースが149(インタフェースや
例外クラスも含む)あって、switch文が使ってあるのは2クラス3箇所でした。ちなみに私の
担当分ではゼロです。

引用:

ストリームの処理とかでもifより使いやすいと思いますよ。


ストリームを解析する処理ということですよね。確かにパーサとか書くときには使いますね。

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-10-27 12:46
>ukさん
switch文って業務システムでは、使い道に苦労しますね。
case節にStringリテラルが使用できるなら
結構使えると思うのですが・・・


#なんか、だんだん話がそれてきましたね・・・
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-27 12:49
引用:

かつのりさんの書き込み (2005-10-27 12:46) より:

case節にStringリテラルが使用できるなら
結構使えると思うのですが・・・


C# では使えるんですよね。
感動はしたんですが、switch 自体私もあまり使うことはないです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
S_Tatsu
ベテラン
会議室デビュー日: 2005/05/13
投稿数: 58
お住まい・勤務地: 東京
投稿日時: 2005-10-27 14:12
私も先月までVisual Strudioの環境でC#を使用していたのですが、Javaではswitch文で
case "a":のようなことができない事を知らずどうしてエラーになるのか悩みました。
JavaとC#は似ていると聞いたことがあったのですが、細かいところでいろいろと違いが
あるのですね。

インスタンスイニシャライザについて検索してみたのですがコンストラクタより先に
実行される初期処理のようなものだと載っておりました。
コンストラクタと別になると何かメリットがあるのかな?と単純に思ってしまったの
ですが他の方が書いたソースで以下のようなものがありました。static{}という部分
がインスタンスイニシャライザにあたるのでしょうか?

public class hoge_class {

 public hoge_class() {
 }

 public native String hogehoge ( String arghoge) ;

 static {
  System.loadLibrary("XXXXXXXXX");
 }


 public String hoge (String arghoge)throws Exception {
 String kekka = "" ;

  kekka = hogehoge(arghoge);
  return kekka ;
}
}

スキルアップ/キャリアアップ(JOB@IT)