1.Switch语句的注意事项:
(1)Case后面只能是常量,不能是变量,而且多个case后面的值不能出现相同的;
(2)Default不建议省略,它的作用是对不正确的情况给出提示;
(3)Break的作用是中断,不可以省略;
(4)Switch语句结束条件:遇到break或者执行到末尾;
举例:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数据");
int week=sc.nextInt();
switch(week) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期2");
break;
case 3:
System.out.println("星期3");
break;
case 4:
System.out.println("星期4");
break;
case 5:
System.out.println("星期5");
break;
case 6:
System.out.println("星期6");
break;
default:
System.out.println("输入错误");
}
举例1.:模拟单项选择题
1.出一个选择题,键盘录入选择的选项。
public static void main(String[] args) {
System.out.println("下面几个人最爱谁");
System.out.println("65 易烊千玺");
System.out.println("66 王元");
System.out.println("67 王一博");
System.out.println("67 肖战");
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的选择");
int choiceNumber=sc.nextInt();
char choice=(char)choiceNumber;//强制转换
switch(choice) {
case 'A':
System.out.println("选择正确");
break;
case 'B':
System.out.println("选择错误");
break;
case 'C':
System.out.println("选择错误");
break;
case 4:
System.out.println("选择错误");
break;
default:
System.out.println("没有该选项");
}
}
举例2.根据你键盘录入的字符串,判断是否有满足要求的,如果有就输出,否则有误。
字符串格式:String s=sc.nextLine()
import java.util.Scanner;
public class One {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要判断的字符串");
String s=sc.nextLine();
switch(s) {
case "hello":
System.out.println("输入为hello");
break;
case "way":
System.out.println("输入为way");
break;
default:
System.out.println("没有该输入");
}
}
2.循环语句
(1)初始化语句:一条或者多条语句;
(2)判断条件语句:这是一个Boolean表达式,这个表达式决定是否执行循环体;
(3)循环体语句:要做多次的事情;
(4)控制条件语句:在一次循环体结束后,下一次循环判断条件执行前执行;
For循环语句格式:
For(初始化条件;判断条件语句;控制条件语句){
循环体语句
}
执行流程:
A执行初始化语句
B执判断条件语句,看琪结果是true还是false
False循环结束
true继续执行
C执行循环体语句
D执行控制条件语句
E回到B继续
举例3.:求出1-10的数据和。
import java.util.Scanner;
public class One {
public static void main(String[] args) {
int sum=0;
for(int x=1;x<=10;x++) {
sum+=x;
}
System.out.println(sum);
}
}
举例4.求出1-100的偶数和。
import java.util.Scanner;
public class One {
public static void main(String[] args) {
int sum=0;
for(int x=1;x<=100;x++) {
//这里的x其实是第二个加数
if(x%2==0) {
sum+=x;
}
}
System.out.println(sum);
}
}
举例5.求5的阶乘
import java.util.Scanner;
public class One {
public static void main(String[] args) {
int jc = 1;
for(int x= 1;x <= 5;x++) {
//这里的x其实是第二个加数
jc *= x;
}
System.out.println(jc);
}
}
举例6.控制台输出水仙花数。
所谓水仙花就是指一个三位数,其各位数字立方和等于该数本身;
153=1 * 1*1 + 5 * 5 * 5 + 3 * 3 * 3=153
153就是一个水仙花数
如何得到数据的个,十,百
ge:153%10=3
shi:153/10%10=5
bai:153/10/10%10=1
import java.util.Scanner;
public class One {
public static void main(String[] args) {
for(int x=100;x<1000;x++) {
int ge=x%10;
int shi=x/10%10;
int bai=x/10/10%10;
if(x==(ge*ge*ge+shi*shi*shi+bai*bai*bai)) {
System.out.println(x);
}
}
}
}
举例7.输出五位数,满足各位等于万位,十位等于千位,个位+十位+千位+万位=百位
分析: 分解每一个五位数
ge=x%10
shi=x/10%10
bai=x/10/10%10
qian=x/10/10/10%10
wan=x/10/10/10/10%10
import java.util.Scanner;
public class One {
public static void main(String[] args) {
for(int x=10000;x<100000;x++) {
int ge=x%10;
int shi=x/10%10;
int bai=x/10/10%10;
int qian=x/10/10/10%10;
int wan=x/10/10/10/10%10;
if(ge==wan&&shi==qian&&(ge+shi+qian+wan==bai)) {
System.out.println(x);
}
}
}
}
举例8.统计多少个水仙花数。
ge=x%10
shi=x/10%10
bai=x/10/10%10
qian=x/10/10/10%10
wan=x/10/10/10/10%10
import java.util.Scanner;
public class One {
public static void main(String[] args) {
int count=0;
for(int x=100;x<1000;x++) {
int ge=x%10;
int shi=x/10%10;
int bai=x/10/10%10;
if(x==(ge*ge*ge+shi*shi*shi+bai*bai*bai)) {
count++;
}
}
System.out.println("水仙花数共有"+count+"个");
}
}
举例9.统计1-1000之间满足如下条件的数据多少个:
对3整除余2
对5整除余3
对7整除余2
x%3 ==2
x%5 ==3
x%7 ==2
import java.util.Scanner;
public class One {
public static void main(String[] args) {
int count=0;
for(int x=1;x<=1000;x++) {
if(x%3==2&&x%5==3&&x%7==2) {
count++;
System.out.println(x);
}
}
System.out.println("数据共有"+count+"个");
}
}