【程序18】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
package com.share.test11_20;
/**
* 【程序18】题目:<br>
* 两个乒乓球队进行比赛,各出三人。<br>
* 甲队为a,b,c三人,乙队为x,y,z三人。<br>
* 已抽签决定比赛名单。有人向队员打听比赛的名单。<br>
* a说他不和x比, c说他不和x,z比,<br>
* 请编程序找出三队赛手的名单。
*
* @author brx
*/
public class Test18 {
public static void main(String[] args) {
test();
}
/**
* 思路:<br>
* 这种思路,完全就是直接将结果写出来了,直接限制了所有不可能的情况,<br>
* 和直接将通过的情况写出来有什么区别?这只是训练了continue语句而已<br>
* 关键的是要将互斥的情况用计算机语言表达出来,选了一个然后就不能选其他的了
*/
public static void test() {
String[] s1 = { "a", "b", "c" };
String[] s2 = { "x", "y", "z" };
for (int i = 0; i < s1.length; i++) {
for (int j = 0; j < s2.length; j++) {
if (s1[i].equals("a") && s2[j].equals("x")) {
continue;
} else {
if (s1[i].equals("a") && s2[j].equals("y")) {
continue;
}
}
if (s1[i].equals("b") && s2[j].equals("y")) {
continue;
} else {
if (s1[i].equals("b") && s2[j].equals("z")) {
continue;
}
}
if (s1[i].equals("c") && s2[j].equals("x")) {
continue;
} else {
if (s1[i].equals("c") && s2[j].equals("z")) {
continue;
}
}
System.out.println(s1[i] + " -vs- " + s2[j]);
}
}
}
}