建项目请参考之前的博客。还是先写代码,笔记在最后面。
1、Scanner的运用
package day04;
import java.util.Scanner;//1.导入一个扫描仪
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);//新建一个扫描仪scan
System.out.println("请输入一个年份");
int year=scan.nextInt();//扫描仪扫描一个整数并赋值给year
System.out.println("请输入一个价格");
double price=scan.nextDouble();
System.out.println("您好今年是"+year+"年");
System.out.println("您输入的价格为"+price+"元");
}
}
2、Switch...case的运用
package day04;
/*
switch...case结构:多条路
优点:效率高、结构清晰
缺点:只对整数判断相等
switch能用的数据类型---byte,short,int,char,String,枚举
*/
public class SwitchCaseDemo {
public static void main(String[] args) {
int num=21;
switch (num){
case 1://if(num==1)
System.out.println(111);
break;
case 2://if(num==2)
System.out.println(222);
break;
case 3://if(num==3)
System.out.println(333);
break;
default://所有case都没有匹配默认输入
System.out.println(886);
}
}
}
循环三要素:---非常重要
1.循环变量的初始化
2.循环的条件(以循环变量为基础)
3.循环变量的改变
3、While的运用
while先判断再执行,有可能一次都不执行
public class WhileDemo {
public static void main(String[] args) {
//1)输出5次“行动是成功的阶梯”
int times =0;
while (times<5){//循环条件
System.out.println("行动是成功的阶梯");
times++;//3)循环变量的改变
}
System.out.println("继续执行");
//2)输出9的乘法表
int num=1;
while (num<=9){
System.out.println(num+"*9="+num*9);
// num++;
num+=2;
}
System.out.println("继续执行");
}
/* 1)执行过程
times=0
times<5 true 输出 times=1
times<5 true 输出 times=2
times<5 true 输出 times=3
times<5 true 输出 times=4
times<5 true 输出 times=5
times<5 false while循环结束
输出继续执行
2)执行过程
num=1
num<9 true 输出num+"*9"=num*9 num+=1 (num=2)
num<9 true 输出num+"*9"=num*9 num+=1 (num=3)
num<9 true 输出num+"*9"=num*9 num+=1 (num=4)
num<9 true 输出num+"*9"=num*9 num+=1 (num=5)
num<9 true 输出num+"*9"=num*9 num+=1 (num=6)
num<9 true 输出num+"*9"=num*9 num+=1 (num=7)
num<9 true 输出num+"*9"=num*9 num+=1 (num=8)
num<9 true 输出num+"*9"=num*9 num+=1 (num=9)
num<9 false while循环结束
输出继续执行
4、do...while的运用
do...while:先执行后判断,至少执行一次
1)语法:
do
{
语句块
}
while(boolean)
package day04;
/*3. Guessing猜数字之do...while版:随机生成一个数,
由用户来猜,猜不对则反复猜,并给出大小提示,
猜对的则结束,用do...while来实现。*/
import java.util.Random;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
int num=(int)(Math.random()*1000+1);
System.out.println(num);//看一下给的数是多少
Scanner scan=new Scanner(System.in);
int guess;
do {
System.out.println("请输入一个1-1000的数");
guess=scan.nextInt();
if(guess>num)
System.out.println("输入的数大了");
else if (guess<num){
System.out.println("输入的数小了");
}else
System.out.println("猜对了");
}while(guess!=num);
}
}
5、分别用Switch...case,for循环实现银行业务功能
package day04;
import java.util.Scanner;
//模拟银行ATM机服务
public class CommandBySwitch {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请选择功能:1.存款 2.取款 3.转账 4.退出");
int command=scan.nextInt();
//用Switch case实现业务
switch (command) {
case 1:
System.out.println("存款业务...");
Scanner scan1=new Scanner(System.in);
System.out.println("请选择存款金额:1.10000 2.1000 3.500 4.100");
int command1=scan.nextInt();
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("输入错误,请重新输入");
}
//用if...else实现业务
/* if(command==1) {
System.out.println("存款业务...");
}else if(command==2){
System.out.println("取款业务...");
}else if(command==3){
System.out.println("转账业务...");
}else if(command==4){
System.out.println("退出成功");
}else {
System.out.println("输入错误,请返回重新输入");
}*/
}
}
day04笔记
1. Scanner接收用户输入的数据:------共3步
import java.util.Scanner
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
2. 分支结构(下):
switch...case结构:多条路
优点:效率高、结构清晰
缺点:只能对整数判断相等
break:跳出switch
switch中数据的类型:byte,short,int,char,String,枚举
3. 循环:反复多次执行一段相同或相似的代码
4. 循环三要素:------------------------非常重要
循环变量的初始化
循环的条件(以循环变量为基础)
循环变量的改变
循环变量:在整个循环过程中所反复改变的那个数
5. 循环结构:
while结构:先判断后执行,有可能一次都不执行
do...while结构:先执行后判断,至少执行一次
当第1要素的代码与第3要素的代码相同时,首选do...while
for结构:应用率最高,适合与次数相关的
6. 三种循环结构如何选择:
先看循环是否与次数有关:
若有关--------------------------------------直接上for
若无关,再看第1要素与第3要素的代码是否相同:
若相同--------------------------------直接上do...while
若不同--------------------------------直接上while
Match.random()------0.0到0.99999999999999...
*1000---------------0.0到999.999999999999...
+1------------------1.0到1000.99999999999...
int num=(int) (Math.random()*1000+1);//1到1000之间的数