No.3ベストアンサー
- 回答日時:
他の方への補足より:
for (int i = 0; i < 10; i++){・・・・・・・
}
if(i ==10){・・・・・・・・}
変数が使える範囲 (「スコープ」) を意識しなくっちゃね。int 型の i という変数は、for ループの中で宣言してあるから、for ループの中でしか使えない。for ループを出た後で i を使おうとしても、もう使用期限が切れているということ。
int i;
for (i = 0; i < 10; i++){・・・・・・・
}
if(i ==10){・・・・・・・・}
こういう風にループの外で宣言しておくと、ループを出た後でも変数は生き残っている。
は~、なるほど!
for(){}で設定した変数はその中でしか通用しないのですね。そのへん、よくわかっていませんでした
丁寧にありがとうございました。
さきほどのプログラムは無事完成いたしました^^
No.4
- 回答日時:
変数にはスコープ(有効範囲)があります。
メソッドの中で宣言された変数はそのメソッド内でしか使用できません。
クラスの中で使おうと思ったら、メソッドの外でクラス変数として宣言しないと使用できません。
じゃぁ、メソッド内で宣言すれば、同じメソッド内でどこでも使えるかというとそうではなくて、
対応する「{」と「}」の中でしか使えません。
(メソッドも「{」と「}」でくくっていますね。)
ですので、
>for (int i = 0; i < 10; i++){・・・・・・・
>}
とfor文で宣言しているのであれば、そのfor文の中でしか使えません。
for文の外でも使いたいのであれば
int i; //for文の外で宣言
for(i = 0;i < 10;i++){ //宣言は外に出したので初期値のみ設定
}
if(i == 10){ //ここでも使えるようになる
としないとだめですね。
他にも
for(int i = 0;i < 10;i++){ //…(1)
//iが0~9について処理
}
for(int i = 0;i < 20;i++){ //…(2)
//iが0~19について処理
}
とすると(1)のiと(2)のiは別物で、それぞれのfor文の中でのみ有効です。
また
try{
int i = 0;
//入力値(inputNumber)を数値に変換
i = Integer.parseInt(inputNumber);
}catch(NumberFormatException){
//変換できなかった場合の処理
i = -1; //変換できなかった場合は-1とする
}
としようとしても、
int i
は
try{~}
の中でしか有効でないため、
catch{~}
の中では使えません。
もうお解かりでしょうか、上記の場合は
try{~}の外でint iを宣言しないといけません。
No.2
- 回答日時:
(1)
>for (int i = 0; i < 10; i++){・・・・・・・
>}
(2)
>if(i ==10){・・・・・・・・} ←問題の箇所です
(1)と(2)は、同じメソッド内ですか?
メソッド1
{
(1)
}
メソッド2
{
(2)
}
のようになっていませんか?
もし、そうでしたら、(2)でもint i;としてください。
習い始めたばかりなので、メソッドがいまいちわかっていませんでした。
今回の質問の回答のおかげで完全理解に一歩近づけました!ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- ヤフオク! ヤフーかんたん決済について教えて下さい。 落札者になります。 商品を落札し、かんたん決済でクレジット 1 2023/03/18 00:30
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/06/06 10:13
- その他(税金) 令和3年分の医療費控除をe-taxで行おうとしております。 何度やっても、最後の送信で写真のようにエ 2 2022/12/02 21:40
- Windows 10 Windows Updateの更新ができない場合に初期化 3 2023/01/18 20:00
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- Java コンソールから所属財産を入力(単位:万円 1000~100000以内でIntegerに変換できない場 2 2022/05/31 21:32
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
onClickで関数呼出し後に、結果...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
mainメソッドのthrows節で設定...
-
【sendkeysメソッドが動かずに...
-
コマンドプロンプト実行後に画...
-
javascriptからjavaを呼び出したい
-
エクセルVBAにおけるON TIMEメ...
-
VBPをダブルクリックするとたま...
-
boolean型のフィールドとゲッタ...
-
エクセルのマクロでプリンタを...
-
CALLされていないメソッドを見...
-
Excel VBA でExcelを終了したい...
-
Refreshメソッドの使い方
-
JSPで<SELECT>の中にDBから持っ...
-
リストボックスの項目削除
-
ExcelのxlDialogInsertPictureで。
-
アクセスのレポートで円を描きたい
-
java 次の機能を有するメソッド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
Labelコントロールに数字を代入...
-
final修飾子を使っているのに、...
-
エクセルVBAにおけるON TIMEメ...
-
コマンドプロンプト実行後に画...
-
mainメソッドのthrows節で設定...
-
DataGridViewでセルクリックイ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
onClickで関数呼出し後に、結果...
-
ExcelのxlDialogInsertPictureで。
-
Refreshメソッドの使い方
-
JSPで<SELECT>の中にDBから持っ...
-
【sendkeysメソッドが動かずに...
-
ウィンドウを最前面にできません
-
(String args[])というメッソ...
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA シェイプの原型のサ...
-
VB.netで、シリアル通信のタイ...
-
Excel VBA でExcelを終了したい...
おすすめ情報