int max(x, y)
{
return (x < y)? y : x;
}
int max(x, y)
{
if (x < y) {
x = y;
}
return x;
}
問. つぎの資格を埋めなさい。
問. つぎの資格を埋めなさい。
問. つぎの資格を埋めなさい。
観察: 文脈が長くなるほど、単語の意味は類似してくる。
単語が何を指しているかは不明でも、 似たようなものだろうということは推測できる。
問. 以下の例で fp.readLine() の返り値は
2回利用される。どのように利用されているか?
private BufferedReader fp;
public String get() {
String s = null;
s = fp.readLine();
int i = s.indexOf(' ');
return s.substring(0, i);
}
グラフ化するとこうなる:
readLine() からたどったノードをデータパスとする:
readLine() - #this:indexOf() - #arg1:substring() - return
readLine() - #this:substring() - return
readLine() の返り値がどのように使われたかを示している。
private BufferedReader fp;
public String get() {
String s = null;
s = fp.readLine();
int i = s.indexOf(' ');
return s.substring(0, i);
}
void show() {
String x = get();
System.out.println(x+"!!");
}
グラフ化するとこうなる:
readLine() のデータパスは:
readLine() - #this:indexOf() - #arg1:substring() - L:+ - #arg0:println()
readLine() - #this:substring() - L:+ - #arg0:println()
readLine()の使い方」ということになる。
const int a = 3; int b = a + 1;
List<Integer>.add()
List<String>.add()
x = (c)? A() : B();
以下のソースコードからデータパスを抽出した:
| プロジェクト | SLOC | メソッド | ノード |
|---|---|---|---|
| xz-1.8 | 6,864 | 747 | 54,170 |
| jhotdraw-5.3 | 14,611 | 2,269 | 66,508 |
| antlr4-4.7.2 | 31,122 | 2,206 | 78,362 |
| jedit-5.3.2 | 116,416 | - | - |
| tomcat-8.5.33 | 235,009 | 21,954 | 1,443,730 |
このほかの予定検体: ant, junit, weka, javaassist, pmd