回答編集履歴

3

追加

2022/01/19 07:41

投稿

jimbe
jimbe

スコア12672

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

追加

2022/01/19 07:12

投稿

jimbe
jimbe

スコア12672

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

修正

2022/01/19 07:10

投稿

jimbe
jimbe

スコア12672

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