b = !b : 当b是false时,!b是true,把b赋值为 true,真假不断转换。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站制作、满洲网络推广、微信小程序、满洲网络营销、满洲企业策划、满洲品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供满洲建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
你说的i = 2代码里看不见
k的循环是控制输出次数,*和空格是由b的值控制不断交替输出。
第1个循环中你把a=1,b=1代进去就知道了第一行就是两的*呀。第1个两的if语句是顺序执行的,第二个是不满足第一个if时才执行elseif。没看清楚吧
package pk;
import java.util.*;
public class Guess {
int playerScore = 0;// 玩家初始积分
int pcScore = 0;// 电脑初始积分
Scanner input = new Scanner(System.in);
/**
* 选择玩家角色
*
* @param a
* @return
*/
public String name(int a) {
String playName = "";
switch (a) {
case 1:
playName = "雪糕";
break;
case 2:
playName = "冰糕";
break;
case 3:
playName = "棒冰";
break;
}
return playName;
}
/**
* 选择玩家出拳
*
* @param b
* @return
*/
public String guess(int b) {
String guess = "";
switch (b) {
case 1:
guess = "剪刀";
break;
case 2:
guess = "石头";
break;
case 3:
guess = "布";
break;
}
return guess;
}
/**
* 游戏开始
*/
public void play() {
System.out.println("**********欢迎来猜拳游戏**************\n\n");
System.out.println("*******1:剪刀 2:石头 3:布*******");
System.out.println("**********3局定胜负**********\n");
//
System.out.println("你选择角色:1:雪糕 2:冰糕 3:棒冰");// 玩家选人
int playerName = input.nextInt();
System.out.println("你选择:" + name(playerName));
int pcName = (int) (Math.random() * 3 + 1);
System.out.println("电脑选择:" + name(pcName) + "\n");// 电脑选人
//
//
int i = 0;// 初始次数
do {
i++;
;
System.out.println("请选择你要出的拳:");// 玩家出拳
int playerGuess = input.nextInt();
System.out.println("你出的拳:" + guess(playerGuess));
int pcGuess = (int) (Math.random() * 3 + 1);// 电脑出拳
System.out.println("电脑的拳:" + guess(pcGuess) + "\n");
//
if (playerGuess == pcGuess) {
System.out.println("平局!!");
} else if ((playerGuess == 1 pcGuess == 3)
|| (playerGuess == 2 pcGuess == 1)
|| (playerGuess == 3 pcGuess == 2)) {
System.out.println(name(playerName) + "你赢了!\n");
playerScore = playerScore + 1;
pcScore = pcScore - 1;
} else {
System.out.println(name(playerName) + "你输了!\n");
playerScore = playerScore - 1;
pcScore = pcScore + 1;
}
//
while (i == 3) {
System.out.println(name(playerName) + "是否继续(y/n)?");// 是否继续
String in = input.next();
if (in.equals("y")) {
i = 0;
} else {
i++;
}
}
} while (i = 3);
//
System.out.println(name(playerName) + "的积分" + playerScore);
System.out.println(name(pcName) + "的积分" + pcScore);
}
}
/*----------测试类-------------*/
package pk;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
Guess py=new Guess();
py.play();
}
}
这个我很久很久以前很久以前很久写的! 一个猜拳游戏
注:for (GoodsBean goods : list)是对链表进行循环遍历
spid--商品ID,spmch--商品名称
这个例子是我从现在做的一个购物车的例子里抽出来的一部分,可以运行,你试试 ,呵呵
/**
* 判断一个list里某个字段是否全相等
* @param list
* @return
*/
public static boolean isEqual(ListGoodsBean list) {
ListString listid = new ArrayListString();
for (GoodsBean goods : list) {
String spid = goods.getSpid();
listid.add(spid);
}
if (listid != null) {
String firstspid = listid.get(0);
for (String spid : listid) {
if (!spid.equals(firstspid)) {
System.out.println("有一个不相等,返回false");
return false;
}
}
return true; //循环完没有找到相等的返回true
}
return false; //为空返回false
}
GoosBean是存放在List里的一个javabean
public class GoodsBean implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1437224000720087048L;
private String spid;
private String spmch;
// 构造方法
public GoodsBean(String spid, String spmch) {
this.spid = spid;
this.spmch = spmch;
}
public GoodsBean() {
}
// 一般方法
public String getSpid() {
return spid;
}
public void setSpid(String spid) {
this.spid = spid;
}
public String getSpmch() {
return spmch;
}
public void setSpmch(String spmch) {
this.spmch = spmch;
}
}
当然不是,
当t=1 的时候,你执行t=t-1,得到t=0
然后就结束了
分支明白么?
你只在 if(t0)的时候做了判断,
希望在 t0 的时候执行t=t-1,而在t不大于0的时候打印zero
并没有写 在t=t-1 后还要判断现在的t是否大于0