XMLPro 19回目
前回の復習
クラス
2
クラスやりました
他のクラスを作成し、メソッドやフィールドを作成
したとき、mainクラスで
クラス名 変数名 = new クラス名();
(オブジェクト名)
で使用準備
変数名. メソッド名();
変数名. フィールド名();
で使用できます
3
クラスやりました
4
5
で好きなようにクラスとメソッド
作ってみてー 話でした
今回はICPC間近なので・・・
本日の内容
ICPC問題
変数のスコープ
for文の並び替え 下のメモ帳からコピペして実行してみてください
7
for文での並び替え
こいつを実行すると配列がソートされるらしい?
8
というわけで処理の詳細をでるように
してみた
これを実行すれば中の処理がわかります
9
実行結果
10
→
→
処理の回数が
減ってる理由
わかるよね?
→
→
左から小さい順
に配列の数を
入れてます
,は気にしないで
orz
• test[0] と test[1],[2],[3],[4]を比較
最も小さいものをtest[0]に
• test[1] と test[2],[3],[4]を比較
2番目に小さいものをtest[1]に
• test[2] と test[3],[4]を比較
3番目に小さいものをtest[2]に
• test[3] と test[4]を比較
4番目に小さいものをtest[2]に
・
・
11
逆向きにソートするプログラムすぐ書
ける?
• 一番大きい数を左側に移動すればよくね?
12
変数のスコープとは
プログラミングでのスコープとは、ある変数や関
数が特定の名前で参照される範囲のこと。
どういうことかというと・・・
19800
13
有効範囲のことです
• if文やfor文の中で変数を宣言したとき、その
変数が扱える有効範囲はその構文の中まで
• メソッドの中でメインメソッドと同じ名前の変数
の値を変化させてもメインメソッドの変数は変
化しない
14
スコープ: if
例1)
15
スコープ: for
例2)
16
スコープ: for
例3)
17
スコープ: メソッド
例4)
18
今週末 金曜はICPCです!!
台風8号? しらんな
ICPC問題やってみよう
http://judge.u-
aizu.ac.jp/onlinejudge/description.jsp?id=1141&
lang=jp
スコープに気をつけて~
split()とファイル読み込みを使ってまず配列に
格納しよう
20
File読み込みScannerバージョン
21
split()
• Stringクラスのsplit()メソッドは与えられた文字
列を分割してくれます
• Javadocより
–文字列を引数に指定した正規表現に従い、
分割します。分割された文字列はStringの
配列として返されます。
22
使い方
“”の中に半角スペース入れると半角スペースごと
に区切れる “n”で行ごとに区切る
実行結果→
23
ICPC頑張ってください!!
ノシ

基礎構文班19回目 変数のスコープとforの並び替え

Editor's Notes

  • #4 引数も使えます
  • #9 package xmlpro0708; public class SampleSort_for { public static void main(String[] args) { int[] test = { 32, 16, 48, 24, 79 }; for (int t = 0; t < test.length - 1; t++) { for (int s = t + 1; s < test.length; s++) { if (test[t] > test[s]) { int tmp = test[t]; test[t] = test[s]; test[s] = tmp; } } } } }
  • #10  public class Sort_for { public static void main(String[] args) { int[] test = { 32, 16, 48, 24, 79 }; System.out.println("ソート前"); System.out.print("test = {"); for (int i = 0; i < test.length; i++) { System.out.print(test[i] + ","); } System.out.println("}"); System.out.println("-------------------------------"); for (int t = 0; t < test.length - 1; t++) { System.out.println((t + 1) + "番目に小さい数を配列の" + (t + 1) + "番目に移動します"); for (int s = t + 1; s < test.length; s++) { if (test[t] > test[s]) { System.out.print("○"); System.out.print("test[" + t + "] = " + test[t]); System.out.print(" > "); System.out.print("test[" + s + "] = " + test[s]); int tmp = test[t]; test[t] = test[s]; test[s] = tmp; System.out.print(" 交換します "); } System.out.print("test[" + t + "] = " + test[t]); System.out.print(" > "); System.out.println("test[" + s + "] = " + test[s]); } System.out.println("ループ t: " + (t + 1) + "回目の処理後の配列"); System.out.print("test = {"); for (int i = 0; i < test.length; i++) { System.out.print(test[i] + ","); } System.out.println("} "); } System.out.println("ソート後"); System.out.println("-------------------------------"); System.out.print("test = {"); for (int i = 0; i < test.length; i++) { System.out.print(test[i] + ","); } System.out.println("}"); } }
  • #16 package xmlpro0708; public class ScopeDog { public static void main(String[] args) { if(1 == 1) { int t = 5; System.out.println(t); } System.out.println(t); } }
  • #17 package xmlpro0708; public class ScopeDog { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println(i); } System.out.println(i); } }
  • #18 package xmlpro0708; public class ScopeDog { public static void main(String[] args) { for (int i = 0; i < 10; i++) { int t = 5; System.out.println(i); } System.out.println(t); } }
  • #19 package xmlpro0708; public class Hiroimono { public static void main(String[] args) { int y = 30; //メソッド呼び出し method(y); System.out.println("----main()------"); System.out.println("main() y: " + y); } static void method(int y) { y *= 10; System.out.println("----method()----"); System.out.println("method() y: " + y); } }
  • #22 package xmlpro0708; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class FileReader_verScanner { public static void main(String[] args) { try { File file = new File("FIles\Icpc2006_A.txt"); Scanner scan = new Scanner(file); scan.useDelimiter("¥¥r¥¥n"); while (scan.hasNext()) { String str = scan.next(); System.out.println(str); } } catch (FileNotFoundException e) { System.out.println(e); } } }
  • #24 package xmlpro0708; public class Bunkatu { public static void main(String[] args) { String str = "afaf fdkfka sss344 433"; /*配列を用意して文字列に対してsplit()メソッドを * 実行すると自動で配列に代入してくれます */ String[] str2 = str.split(" "); for (int i = 0; i < str2.length; i++) { System.out.println(str2[i]); } } }