回答編集履歴
3
追加
test
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
+
> 一つの文字列に対して2種類の変換を複数回を行うfor文の作り方
|
2
|
+
|
3
|
+
ご提示のコードの問題は、結果的に for のループ一回につき 2 種類の置換を**同時に**行ってしまっている点と思います。本来は for のループ一回につき 2 種類の置換の**どちらか**を行うことのはずです。
|
4
|
+
|
1
|
-
chAB の if 文が連続して実行可能であったり、 'A' の x=x+1 が if 文の外にあったり、 'B' の置き換え位置が変だったりで、置き換えが sui11 さんの想定のようには行われていないと思います。
|
5
|
+
chAB の if 文が連続して実行可能であったり、 'A' の x=x+1 が if 文の外にあったり、(その為に?) 'B' の置き換え位置が変だったりで、置き換えが sui11 さんの想定のようには行われていないと思います。
|
2
6
|
|
3
7
|
次のように書けます。
|
4
8
|
```java
|
2
追加
test
CHANGED
@@ -1,6 +1,26 @@
|
|
1
1
|
chAB の if 文が連続して実行可能であったり、 'A' の x=x+1 が if 文の外にあったり、 'B' の置き換え位置が変だったりで、置き換えが sui11 さんの想定のようには行われていないと思います。
|
2
2
|
|
3
3
|
次のように書けます。
|
4
|
+
```java
|
5
|
+
public class fibw {
|
6
|
+
public static void main(String[] args){
|
7
|
+
StringBuffer f = new StringBuffer("B");
|
8
|
+
for(int i = 1; i<=10;++i){
|
9
|
+
for(int x=0;x<f.length();++x){
|
10
|
+
char chAB = f.charAt(x);
|
11
|
+
if(chAB == 'A') {
|
12
|
+
f.replace(x,x+1,"AB");
|
13
|
+
x ++;
|
14
|
+
} else if(chAB == 'B') {
|
15
|
+
f.replace(x,x+1,"A");
|
16
|
+
}
|
17
|
+
}
|
18
|
+
System.out.println("Fib"+i+"= "+f);
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
```
|
23
|
+
もう少し整理するとこんな感じにも。
|
4
24
|
```java
|
5
25
|
public class fibw {
|
6
26
|
public static void main(String[] args) {
|
1
修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
chAB の if 文が連続して実行可能であったり、 'A' の x=x+1 が if 文の外にあったりで、置き換えが sui11 さんの想定のようには行われていないと思います。
|
1
|
+
chAB の if 文が連続して実行可能であったり、 'A' の x=x+1 が if 文の外にあったり、 'B' の置き換え位置が変だったりで、置き換えが sui11 さんの想定のようには行われていないと思います。
|
2
2
|
|
3
3
|
次のように書けます。
|
4
4
|
```java
|