文章目录
前言
上篇我们讲了Java中的条件控制语句,这篇呢,讲述switch语句的用法
我感觉啊,这个和多支条件控制语句是差不多的
小练习
先回顾一下题目:
判断一个数(由自己定义)是否是质数
什么是质数:只能被1和他本身整除的数就是质数。 例如:2、3、5、7、11、13…
想必对大家来说这个是很简单的吧!
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
boolean isPrime = true;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数");
int num = sc.nextInt();
if (num > 0) {
int k = (int) Math.sqrt(num);//k为num的正平方根,取整数
// 考虑平方根是为了减少重复量,开平方后面的数不处理
/* 素数是因子为1和本身, 如果数c不是素数,则还有其他因子,其中的因子 假如为a,b.其中必有一个大于sqrt(c) , 一个小于sqrt(c) 所以m必有一个小于或等于其平方根的因数,那么验证素数时就只需要验证到其平方根就可以了 */
for (int i = 2; i <= k; i++) {
if (num % i == 0) {
isPrime = false; //不是素数
break;
}
}
}
if (isPrime) {
System.out.println(num + "是素数");
} else {
System.out.println(num + "不是素数");
}
}
}
就不多做赘述了
switch语句的格式
学习语法嘛,要先看怎么用的,也就是,格式
switch(表达式){
case 值 ://语句
break; //可选
case 值 ://语句
break; //可选
//你可以有任意数量的case语句
default : //语句 //可选
}
嚯,这一看,不得了:这是什么玩意啊?
不慌,我们先看看怎么用的,就用猜拳游戏当例子吧
import java.util.Random;
//导入Random包,用于取随机数
import java.util.Scanner;
//导入Scanner包,用于从键盘获取数据
public class 猜拳 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //只有sc是自定义的,别的地方都是固定语法
Random ra = new Random(); //固定语法
System.out.println("请输入你猜拳的数!规则如下:");
System.out.println("0——————石头");
System.out.println("1——————剪刀");
System.out.println("2——————布");
int a = sc.nextInt(); //用a从键盘接受一个整形类型的数据
int pc = ra.nextInt(2); //用pc变量接受一个从0 1 2 中随机取的数
String guiZe = null; //初始化变量
String pc1 = null; //初始化变量
switch (a){
case 0: guiZe = "石头";
break;
case 1: guiZe = "剪刀";
break;
case 2: guiZe = "布";
break;
}
switch (pc){
case 0: pc1 = "石头";
break;
case 1: pc1 = "剪刀";
break;
case 2: pc1 = "布";
break;
}
if (pc == a){
System.out.println("平局!");
System.out.println("你出的是:"+guiZe);
System.out.println("电脑出的是:"+pc1);
}else if (pc >= a){
System.out.println("你输了!");
System.out.println("你出的是:"+guiZe);
System.out.println("电脑出的是:"+pc1);
}else {
System.out.println("你赢了!");
System.out.println("你出的是:"+guiZe);
System.out.println("电脑出的是:"+pc1);
}
}
}
好,以上就是代码了,一眼看过去不会还是这样的感觉吧?(woc,这是什么鬼?)这都学到这里了,是时候该自己看代码了。——无良作者,什么时候学过Scanner和Random的,明明没有,掀桌 凸(艹皿艹 )
话外语
Random包,用于取随机数
Random ra = new Random();
ra.nextInt(2);
Scanner包,用于从键盘获取数据
用法:
Scanner sc = new Scanner(System.in);
sc.next类型();类型首字母必须大写
与switch语句再续前缘
好,话外语已经说完了,继续我们的switch,既然代码那么长,就是看switch的部分吧
switch (a){
case 0: guiZe = "石头";
break;
case 1: guiZe = "剪刀";
break;
case 2: guiZe = "布";
break;
default: guiZe = "不符合规则";
}
switch (pc){
case 0: pc1 = "石头";
break;
case 1: pc1 = "剪刀";
break;
case 2: pc1 = "布";
break;
}
这个看着蛮复杂的,其实也算是个条件控制语句,我们先看第一个,其实只看第一个也就行了,开整,冲
如果a的值和case后面的值相等了,那么就执行冒号后面的代码,而如果没有相等的,就执行default后面的代码。好,我觉得我说的很详细了,就不多说了!
我觉得
多一嘴
好吧,还是有必要多说几句的
表达式的值可以是:byte、short、int 、char、String,且case标签必须是字符串常量或字面量
好了,这次是真的没了!
结语
啊,美好的一天总是短小而又精悍的~
彩蛋
本来是不想说的,但是看很多人都没发现,还是说一下,文中的猜拳小游戏有些逻辑上的错误哦,由于懒(确实是懒,不是理由哈哈),错误是什么我就不说了,自己找吧,就当锻炼一下自己,当程序员,找错是必不可少的技能,冲冲冲
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100267.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...