条件语句
if适合一次只执行一段代码的语句结构
switch语句适合一次执行多段代码的语句结构
if使用较多
if... (表示如果)
if(表达式){代码块} 表达式结果为true 则执行代码块
int x = 0;
if (x==1) {
System.out.println("x的值为1");
}//此时表达式结果为false 输出不执行 如果x的值为0 表达式结果为true 输出执行
if...else.... (二选一)
int x = 0;
if (x<2) {
x++;
} else {
x--;
}System.out.println(x);
//x的值为0 满足x<2的条件 直接执行x++后输出 结果为1
if...elseif...else... (多选一)
int m;//月份
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份");
m = sc.nextInt();
if (m>=3 && m<=5) {
System.out.println(m+"月是春天");
}else if (m>=6 && m<=8) {
System.out.println(m+"月是夏天");
}else if (m>=9 && m<=11) {
System.out.println(m+"月是秋天");
}else if (m==12||m==1||m==2){
System.out.println(m+"月是冬天");
}else {
System.out.println("输入月份不正确");
}
switch 一次性执行多个
表达式的值只可以接受int、byte、char、short 、String型
可与break default结合使用 break表示中断switch运行
default 与break配合使用时 default表示除之前case之外的所有情况
case和default在书写上没有顺序要求,但是在执行的时候先执行case 再执行default
switch (表达式){
case 取值1:
语句块1
break;
default:
语句块n+1
}
int n ;//答对题的数目 看答对多少题能获得多少奖品
Random ran = new Random();//随机生成答对题数
n = ran.nextInt(4);//范围是0-3
System.out.println("答对题的数目"+n);
switch(n) {
case 3:
System.out.println("苹果12promax");
case 2:
System.out.println("乐高兰博基尼模型一部");
case 1:
System.out.println("大宝SOD蜜");
case 0:
System.out.println("参与奖");
}// 运行结果为 大宝SOD蜜 参与奖 表示当答对题数为一题时 获得大宝SOD蜜和参与奖
循环语句
循环语句选择
while和do-while适合循环次数不确定
while适合先判断再执行
do-while适合先执行再判断
for循环适合循环次数确定的
实际项目中,for循环使用较多
while (条件语句){代码语句}
int x = 1;
while (x<2) {
System.out.println("x="+x);
x++;
}//输出结果为 x=1
do{代码语句}while(条件语句); 先运行一遍再判断
int x = 0;
do {
System.out.println("x="+x);
x++;
} while (x<3);
//输出结果为 x=0 x=1 x=2
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句块}
初始化表达式,只执行一次 ,之后执行条件表达式
如果结果为true 则执行语句块 执行之后执行循环后表达式
再去执行条件表达式
以此类推,直到结果为false时,循环语句结束
for里面定义的变量只能在这个for循环里使用
for(int x = 1;x<3;x++) {
System.out.println("x="+x);
}//结果为 x=1 x=2
//for循环初始化表达式只运行一次 一般写定义变量的语句
//初始化表达式中定义的变量只能在循环中使用
控制台输入
Scanner
int x ;
Scanner sc = new Scanner(System.in);
x = sc.nextInt();
//nextint 表示获取输入整数 nextdouble 表示获取输入浮点数 next 表示获取输入字符串
产生随机数
Random 赋值给变量时括号里面写变量范围
int n ;//答对题的数目
Random ran = new Random();
n = ran.nextInt(6);//范围是0-5
死循环
当条件语句为true时 循环语句进入死循环
1.while和do-while语句条件语句为true为死循环 2.for语句条件语句不填(第二个)为死循环
break(终止整个循环运行)
可以使用关键字break提前终止整个循环运行
public class 大于200的最小数 {
public static void main(String[] args) {
int n = 201;
while (true) {
if (n%3==0 && n%7==0) {
System.out.println("最小数是"+n);
break;
}
n++;
}//break 使用循环语句时有时需要使用break关键字提前终止循环运行
}//该代码表示大于200且能同时被3和7整除的最小数 输出结果为210
//因为while的条件语句为true 所以是死循环 用break提前终止循环运行
}
continue(终止一次循环运行)
后面代码段的代码不再执行但不会停止整个循环 循环还会继续
public class 打印50以内奇数 {
public static void main(String[] args) {
for(int i = 1;i<50;i++){
if (i%2==0) {
continue;//中止本次循环的运行 开始下一次循环
}
System.out.print(i+" ");
}// 结果:1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49
}
标签名
可以给循环或者条件语句命名 连接break使用
命名方法 在循环或者条件语句前写上标签名:
public static void main(String[] args) {
outer:for(int i = 0;i<10;i++ ) {
System.out.println("outer loop");
inner: while(true) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
System.out.println("inner loop");
if(s.equals("hello")) {
break inner;
}
if(s.equals("kitty")) {
break outer;
}
}