多分支判断语句
if(){
}else if(){
}else{}
Scanner scanner = new Scanner(System.in);
System.out.print("请输入金额:");
int i = scanner.nextInt();
if(i <= 800){
System.out.println("老年机");
}
else if(i <= 1500){
System.out.println("小米");
}
else if(i <= 2500){
System.out.println("vivo");
}
else if(i <= 5000){
System.out.println("华为");
}
else{
System.out.println("苹果");
}
switch实现多分支判断
switch(){
case 值1:
// 分支1代码
break;
case 值2:
// 分支2代码
break;
default:
//语句
break;
}
注意:1.case后的值必须是一个具体的值(不能用表达式、变量),只能是整数、字符、字符串和枚举
- 每个语句后面要有break,没有break,所有语句直接执行。
- default是所有case 都不满足时进行执行,位置不固定。
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
switch (i){
case 1:
System.out.println("查询");
break;
case 2:
System.out.println("取款");
break;
case 3:
System.out.println("存款");
break;
case 4:
System.out.println("修改密码");
break;
default:
System.out.println("错误,重新输入");
break;
} `
循环
for 循环
for(定义变量;判断循环条件;循环变量改变){
//循环体
}
for(int i = 1; i < 10; ++i){
System.out.println(i);
}
//执行顺序:i+1 ->i<10 ->循环题 ->i++或i--
- 多个循环变量
for(int i = 0, j = 10; i < j; i++, j--){
System.out.println(i + ", " + j);
}
- for循环小括号里面的表达式都可以省略
//for循环的表达式可以放在for循环之前定义,循环变量的改变可以放到循环体里执行
int i = 0;
for (; i < 10;){
System.out.println(System.currentTimeMillis());
i++;
}
//循环语句要有条件结束,否则就是死循环
//小括号里面的表达式都可以省略,但是两个分号不能省略
for (; ;){
System.out.println(System.currentTimeMillis());
}
-
退出循环的命令
- continue
for (int i = 0; i < 10; i++) { if(i == 2){ //continue跳出本次循环(continue后面的循环体语句不再执行,直接跳到本次循环结束),继续执行下一次循环 continue; } System.out.println(i); }
- break
for (int i = 0; i < 10; i++) { if(i == 2){ //终止for循环,剩余的还没有循环完的次数不再执行 break; } System.out.println(i); }
- return
for (int i = 0; i < 10; i++) { if(i == 2){ //return结束方法,后面所有语句都不再执行(不仅是for循环) return; } System.out.println(i); } System.out.println("for循环后面的语句");
while 循环
跟for类似,可以在大多数情况下互相替换,循环次数未知的情况下用while 较多一些
- 语法。
1.条件表达式为true,循环执行
2.while循环也支持continue,break等命令。
while(条件表达式){
//循环体
}
do while
与while类似,区别在于do while至少会执行一次循环。
- 语法
do{
//循环体
}whil(条件表达式)
int t;
do{
System.out.println("跑一圈");
double random = Math.random();//返回0-1之间的随机数(小数)
t = (int) (random*150);//0-150
System.out.println(t);
}while(t>60);
- 练习
算1+1/2+…+1/888
public static void main(String[] args) {
double sum = 0,c = 0;
for (int i =1;i <= 888; i++){
c = 1.0 /i; //需要用浮点数除以整数结果才为小数
sum += c;
System.out.println(c);
}
System.out.println(sum);
- 九九乘法表
for(int i =1;i < 10; i++){
for(int j = 1; j <= i; j++){
System.out.print(j + "x" +i + "=" + i * j + "\t");
}
System.out.println("");
}
}
练习题
- 打印九九乘法表
for(int i =1;i < 10; i++){
for(int j = 1; j <= i; j++){
System.out.print(j + "x" +i + "=" + i * j + "\t");
}
System.out.println("");
}
}
-
控制台输入一个多为整数,如:1234, 把该整数倒序输出:4321
1234 % 10 = 商 123 余 4
123 % 10 = 商12 余3
…
循环结束条件,商为0
Scanner scanner = new Scanner(System.in); System.out.println("输入一个整数:"); int d = scanner.nextInt(); int num = 0; while (d > 10){ num = num * 10 + d % 10; d /= 10; } System.out.println(num * 10 + d);
-
假设一张白纸的厚度是0.02厘米, 玉龙雪山的高度是5596米,一张白纸折叠多少次后能超过玉龙雪山的高度。
double h1 = 0.02,h2 = 5596 * 100;
int i = 0;
while(h1 < h2){
h1 *= 2;
i++;
}
System.out.println(i);
-
一只小猴子某天摘了很多桃子,第一天吃了一半,感觉不过瘾,又吃了一个;第二天吃了剩下的一半,再多吃一个。直到第10天,小猴子发现只剩下一个桃子,问小猴子一共摘了多少个桃子
第十天: 1个
第九天: 4个 = (1+1) * 2
第八天: 10个 = (4+1) * 2
int num = 1; for(int i = 2;i <=10 ; i++){ num = (num + 1) * 2 ; System.out.println(num + "," + i); } System.out.println(num);
-
输入一个正整数, 计算它的阶乘: 1x2x3。。。xn
Scanner scanner = new Scanner(System.in);
System.out.println("输入一个整数:");
int n = scanner.nextInt();
int sum = 1;
for(int i = 2;i <= n ; i ++){
sum *= i;
}
System.out.println(sum);