package jadx.samples; public class TestSwitch extends AbstractTest { public static int test1(int i) { int k = i * 4; switch (k) { case 1: return 0; case 10: return 1; case 100: return 2; case 1000: return 3; } i -= 77; return i; } public static int test2(int i) { int k = i; switch (k) { case 1: return 0; case 2: return 1; case 3: return 2; case 5: return 3; case 7: return 4; case 9: return 5; } i /= 2; return -i; } public static int test3(int i, int j) { int k = i; switch (k) { case 1: if (j == 0) { return 0; } else { return -1; } case 2: return 1; } return -1; } public static int test4(int i) { int k = i; switch (k) { case 1: throw new RuntimeException("test4"); case 2: return 1; } return -1; } @SuppressWarnings("fallthrough") public static int test5(int i, int b) { int k = i; switch (k) { case 1: if (b == 0) { return 3; } case 2: b++; return b; } return -1; } public String escape(String str) { int len = str.length(); StringBuilder sb = new StringBuilder(len); for (int i = 0; i < len; i++) { char c = str.charAt(i); switch (c) { case '.': case '/': sb.append('_'); break; case ']': sb.append('A'); break; case '?': break; default: sb.append(c); break; } } return sb.toString(); } @Override public boolean testRun() { assertTrue(test1(25) == 2); assertTrue(test2(5) == 3); assertTrue(test3(1, 0) == 0); assertTrue(test4(2) == 1); assertEquals(escape("a.b/c]d?e"), "a_b_cAde"); return true; } public static void main(String[] args) { new TestSwitch().testRun(); } }