条件选择结构--学习 java 归纳(2)
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的跟电脑玩猜拳了。而且还不用担心电脑耍诈。