新手区 条件选择结构--学习 java 归纳 (2)

wuming · 2015年02月05日 · 最后由 xiejun 回复于 2017年07月14日 · 1695 次阅读
本帖已被设为精华帖!

本来打算每周归纳一次,无奈最近在学 selenium 和 Robotium。于是每周归纳就变成每月归纳了。
java 的语法格式,关键字,保留字,常量变量什么的,几乎是每种语言都要学习的。这里直接略过了,开始条件选择结构。
条件结构的语句要么用 if,要么用 switch。
if 一般有三种格式:

switch 是以下格式:

switch 格式的特点:

其实以上说的很干瘪。什么都没说明白。。
用个实例应该会好点,猜拳游戏。
我想要和电脑比猜拳。我输入 1,代表石头,2 代表剪刀,3 代表布。电脑随机输入 1,2,3,。然后跟我输入的做比较。
首先要解决的是,我怎么输入 1,2,3.

import java.util.Scanner;//引用Scanner这个库
Scanner in=new Scanner(System.in);//将输入的功能赋给in
int person=in.nextInt();//将输入功能定义为Int,并赋给person

然后就是电脑怎么随机输入?有两种方法:
第一种:

import java.util.Random;//引用随机库
Random random=new Random(3);//括号里面的10表示0~2的随机数

第二种:

int computer=(int)(Math.random()*3);//无需引用库,而且还支持多线程只是需要注意Math输出的随机数是double类型的,所以需要强制转换为int类型

解决了上面两个问题,就要开始对比 person 和 computer,如果 person 和 computer 是一样的,那么就是平局。如果不一样,那也要分我赢了还是我输了。这时候可以用到 if 判断。

     if(person==computer){
    System.out.println("平局, ");
}else if(person==1&&computer==3||person==2&&computer==1||person==3&&computer==2){
    System.out.println("您输了, ");

}else {
    System.out.println("您赢了, ");
}

这样算是搞定了功能部分。另外我还想知道电脑到底是出的是什么?石头,剪刀还是布。我可以这样写:

        String marks="拳头";
switch(computer){
case 1:
    marks="石头";
    break;
case 2:
    marks="剪刀";
    break;
case 3:
    marks="布";
    break;
}

所以我最后的代码是:

    import java.util.Scanner;
    public class guess{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        System.out.println("---猜拳游戏---");
        System.out.println("1.石头,2.剪刀,3,布");
        int person=in.nextInt();
        int computer=(int)(Math.random()*3)+1;
        String marks="拳头";
        switch(computer){
        case 1:
            marks="石头";
            break;
        case 2:
            marks="剪刀";
            break;
        case 3:
            marks="布";
            break;
        }
        if(person==computer){
            System.out.println("平局, 电脑出的是:"+marks+"-_-");
        }else if(person==1&&computer==3||person==2&&computer==1||person==3&&computer==2){
            System.out.println("您输了, 电脑出的是:"+marks+"-^-");

        }else {
            System.out.println("您赢了, 电脑出的是:"+marks+"-*-");
        }
    }
}

运行后,就可以很 happy 的跟电脑玩猜拳了。而且还不用担心电脑耍诈。

基本上一个月就学了这些,实在是有点少。。。
下次应该是循环,再下次是数组。哎,再说吧。。。
睡觉!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 16 条回复 时间 点赞

赞一个!~坚持就是胜利!~

是的,坚持就是胜利

wuming #14 · 2015年02月05日 Author

感谢两位的支持,瞬间原地满血复活。

不错, java 是基础技能,需要掌握, 加油
我们正在物色 java 高手 懂字节码插桩等底层基础或者 web 开发技术.
给你 2 年的时间等着你成长.

感谢@seveniruby的支持,愿意和 testerhome 一起成长。

我也刚开始学习 Java。一起加油↖(ω)↗

wuming #10 · 2015年02月05日 Author

恩恩,一起加油。。有空多交流交流

赞一个啊

期待楼主写 java 入门基础啊~只要基础语法使用写下 UI 自动化就 ok~

@jennyhui 谢谢关注~~

学习。之前 java 学的断断续续,准备从头开始再次学习😀 😀

---猜拳游戏---
1.石头,2.剪刀,3,布
8
您赢了, 电脑出的是:石头-*-

有 bug

import java.util.Scanner;
public class helloword{
public static void main(String[] args){

int person ;
int computer;
for(;;){
System.out.println("---猜拳游戏---");
System.out.println("1.石头,2.剪刀,3,布");

Scanner in=new Scanner(System.in);
person=in.nextInt();

computer=(int)(Math.random()*3)+1;
String marks="拳头";
switch(computer){
case 1:
marks="石头";
break;
case 2:
marks="剪刀";
break;
case 3:
marks="布";
break;
}
if(person==computer){
System.out.println("平局, 电脑出的是:"+marks+"-_-");
}else if(person==1&&computer==3||person==2&&computer==1||person==3&&computer==2){
System.out.println("您输了, 电脑出的是:"+marks+"--");

}else if(person==1&&computer==2||person==2&&computer==3||person==3&&computer==1){
System.out.println("您赢了, 电脑出的是:"+marks+"-*-");
}else {
System.out.println("请从新开始,你出的是非法的");
}
}
}
}

修改了一下,这样可以一直玩下去,并且输入大于 3 的数会提示非法(原来是输入》3 就会赢)

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册