- if语句
// 单一条件
/**
* if(布尔表达式A){
* 语句B
* }
* A为true 执行B,否者不执行
*
* 可以省略if语句的花括号,编译器在识别代码时默认添加,只括if语句下一行代码,一般不会省略,使用花括号提高代码可阅读性
* /
int itemNum=100;
int buyNum=1000;
// if(buyNum<=itemNum)
// System.out.println("执行购买商品的业务逻辑"); //结果为false不执行
// if(buyNum<=itemNum)
// System.out.println("执行购买商品的业务逻辑");
// System.out.println("hahahaha");//执行了第二个结果
//
// 二选一
/**
* if(布尔表达式A){
* 语句B
* }else{
* 语句C
* }
* 如果A为true,执行B,否则执行C,B和C无论如何都会执行其中一个
* /
if(buyNum<=itemNum){
System.out.println("执行购买商品的业务逻辑");
}else{
System.out.println("您购买的商品数量超标了");
}
// 多分枝
/**
*if{
* 语句B
* }else if(布尔表达式A1){
* 语句B1
* }else if(布尔表达式A2){
* 语句B2
* }..
* else{
* 语句B3
* }
* 如果A为true,执行B,后续代码不在判断,if语句结束
* 如果A为false,继续判断A1,如果A1为true,执行B1,if语句结束
* else匹配所有不满足条件的情况下执行B3
*/
// 需求: 星期一:上班 星期二:加班 星期三:不想写代码 星期四:通宵写代码 星期五:离职 星期六:睡大街 星期天:找工作
int week=7;(这里输入数值)
if(week==1) {
System.out.println("上班");
}else if(week==2) {
System.out.println("加班 ");
}
else if(week==3) {
System.out.println("不想写代码 ");
}
else if(week==4) {
System.out.println("通宵写代码 ");
}
else if(week==5) {
System.out.println("离职 ");
}
else if(week==6) {
System.out.println("睡大街 ");
}else if(week==7) {
System.out.println("找工作 ");
}else {
System.out.println("请选择正确的日期 ");
} //显示结果为"找工作"
int money=5000000;
char home='有';
if(10000000<=money && home=='有') {
System.out.println("我们结婚吧");
}else {
System.out.println("你是个好人");
}
练习
1、假设有整型变量x,判断x是否为偶数,若为偶数,则在控制台上打印“输入的数值是偶数”。
无论x是否为偶数,最后都要在控制台上输出x的值
2、有一个数字为45327,判断该数字是否能被13整除,是否能被17整除。
3、判断2064年是不是闰年。
闰年判断规则:
能被400整除的是闰年
能被100整除,不能被400整除的不是闰年
能被4整除,不能被100整除的是闰年
其他的不是闰年
4、有两个整型变量x,y,请编写代码在控制台上输出x与y中值较大的那个数。
链接: 答案点击这里
- switch语句
public static void main(String[] args) {
// switch语句
/**
* switch(表达式X){
* case 常量:
* 语句块A;
* break;
* case 常量:
* 语句块;
* break;
* ...
* default:
* 语句块B;
*
* }
* 执行顺序:
* switch一旦碰到第一次case区配,程序就会跳转到这个标签位置,
* 开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配
* 直到碰到break关键字或者结束switch语句的大括号为止
*
* ①case只能是常量不能是变量或表达式
* ②表达式X的值只可以接受四个基本数据类型和对应包装类(int、byte、char、short),枚举型,jdk1.7之后表达式X可以接受string
* ③switch case中的值必须要与switch表达式的值具有相同的数据类型
* ④不允许有重复的case取值
* ⑤switch的结束:遇到break才结束否则直到switch语句块结束
* ⑥case之间与default没有顺序。先判断所有的case,没有匹配的case执行default。因此一般将default放在case后面
*
*/
// 10~20之间:8000块 20~30:7000块 30~40:6000块 40~50:5000块 50~60 :4000块 其他0
int age=98;
int level=age/10;
// switch(level) {
// case 1:
// System.out.println("奖金8000");
// break;
// case 2:
// System.out.println("奖金7000");
// break;
// case 3:
// System.out.println("奖金6000");
// break;
// case 4:
// System.out.println("奖金5000");
// break;
// case 5:
// System.out.println("奖金4000");
// break;
// default:
// System.out.println("奖金0");
// }
显示奖金为0
switch(level) {
default:
System.out.println("奖金0");
case 1:
System.out.println("奖金8000");
// break;
case 2:
System.out.println("奖金7000");
// break;
case 3:
System.out.println("奖金6000");
break;
case 4:
System.out.println("奖金5000");
break;
case 5:
System.out.println("奖金4000");
break;
}
// 显示: 奖金0
// 奖金8000
// 奖金7000
// 奖金6000
String name="张三";
switch(name) {
case "张三":
System.out.println("小三的爸爸");
break;
case "李四":
System.out.println("小四的爸爸");
break;
}
// 显示:小三的爸爸
// 只要i满足1 2 3 4就会执行语句块A
int i=5;
switch(i) {
case 1:
case 2:
case 3:
case 4:
System.out.println("里面没有10");//语句块A
break;
case 5:
case 10:
System.out.println("里面有10和5");//语句块B
break;
}
// 显示:里面有10和5
}
}
练习
1、如果月份month为1—12的一个月份,输出该月份的天数;如果数字不符合,输出“错误的月份”。
1、3、5、7、8、10、12月天数为31
2月天数为28
4、6、9、11月天数为30
2、用户输入商品名称,显示该商品的价格
链接: 答案点击这里
- 接受控制台输出
// String s1="我爱你,中国";
// System.out.println(s1);//我爱你,中国
//
// 接收控制台输入
Scanner sc=new Scanner(System.in);
// 快捷键:Ctrl+Shift+O (快速打包)
接收控制台输入的整型
// int messageInt=sc.nextInt();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除
// System.out.println(messageInt);
接收制台输入的浮点型
// double messageDouble=sc.nextDouble();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除
// System.out.println(messageDouble);
// 接收制台输入的字符串 :得到用户输入的字符串,空格结束
// String messageString=sc.next();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除
// System.out.println(messageString);
String message=sc.nextLine();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除,显示一整行,包含空格
System.out.println(message);
- 随机数
Random rn=new Random();
// 随机产生int大小内的整型数据
int message=rn.nextInt();
System.out.println(message);
// 随机产生0-10之间的整型数据:包括0不包括10
message=rn.nextInt(10);
System.out.println(message);
// 随机产生0-1之间的浮点型数据 不包括1
double messageDouble=rn.nextDouble();
System.out.println(messageDouble);
// 随机产生10~20的数据
int i=(int)(rn.nextDouble()*10)+10;
System.out.println(i);
// 产生一个12以内的随机月份,和一个30以内的随机天数,输出该日是本年的第多少天(不考虑闰年)
int month=rn.nextInt(12)+1;
int day=rn.nextInt(30)+1;
if(month==1) {
System.out.println("第"+day+"天");
}else if(month==2) {
System.out.println("第"+(31+day)+"天");
}
else if(month==3) {
System.out.println("第"+(59+day)+"天");
}
else if(month==4) {
System.out.println("第"+(90+day)+"天");
}
else if(month==5) {
System.out.println("第"+(120+day)+"天");
}
else if(month==6) {
System.out.println("第"+(151+day)+"天");
}
else if(month==7) {
System.out.println("第"+(181+day)+"天");
}
else if(month==8) {
System.out.println("第"+(212+day)+"天");
}
else if(month==9) {
System.out.println("第"+(243+day)+"天");
}
else if(month==10) {
System.out.println("第"+(273+day)+"天");
}
else if(month==11) {
System.out.println("第"+(304+day)+"天");
}
else if(month==12) {
System.out.println("第"+(334+day)+"天");
}
- for循环
// 输出一百次我爱你,中国
for(int i=0;i<100;i++) { //只执行到99
System.out.println("我爱你,中国"+i);
}
int i;
for(i=0;i<100;i++) { //正常输出
System.out.println("我爱你,中国"+i);
}
int i;
for(i=0;i<100;) { //执行到100
i++;
System.out.println("我爱你,中国"+i);
}
int i;
for(i=0;i<100;) { //跟第一种方法一样
System.out.println("我爱你,中国"+i);
i++;
}
// 死循环:没有循环终止条件或者循环终止条件一直为true,死循环后面的代码会错
for(;1<2;) {
System.out.println("我爱你,中国");
}
for(;;) {
System.out.println("我爱你,中国");
}
for(int i=0;;i++) {
System.out.println("我爱你,中国");
}
for(int i=0;;){
System.out.println("我爱你,中国");
}
练习
1、用for循环改写从1到100的所有奇数相加的和
2、循环得到用户从控制台输入的5个整数,该整数为用户购买商品的价格,计算用户一共需要花费的总金额。
3、随机产生一个10以内的正整数,用户循环输入三个整数,如果用户输入的整数包含随机数,输出“猜对了”;反之,输出“没猜到”。
例如:
随机数为4,用户输入数为:2,3,4。输出:猜对了
随机数为4,用户输入数为:1,2,3。输出:没猜到
链接: 答案点击这里
- while和do while循环
// while循环 :先判断后执行
/**
* while(布尔表达式){
* 语句块B;
* 循环终止条件c;
* }
* 只要A为true就执行B
*/
// 100次我爱你中国
// int i=0;
// while(i<100) {
// System.out.println("我爱你中国"+i"我爱你中国"+i);
// i++;
// }
// 死循环:没有在循环终止条件
// while(true) {
// System.out.println("我爱你中国"+i);
// }
// while(1<2){
// System.out.println("我爱你中国");
// }
// do while:先执行一次,在判断,无论如何do(语句块B)都会执行一次
/**
* do {
* 语句块B
* 循环终止条件C
* }while(布尔表达式A)
*
*/
// int i=0;
// do {
// System.out.println("我爱你中国"+i);
// i++;
// }while(i<100);
int i=0;
do {
System.out.println("我爱你中国"+i);
i++;
}while(i<0);
练习
1、计算1+2+3+…+100的和(提示利用while语句)
2、计算从1到100的所有奇数相加(提示利用while语句)
链接: 答案点击这里
阶段练习
- 循环中断
// break:跳出当前循环;直到结束循环
// continue:跳出本次循环执行下一次循环
// for循环输出0-99:只输出到0-55
for(int i=0;i<100;i++) {
if(i==56) {
break;
}
System.out.println(i);
}
}//只输出到55
for(int i=0;i<100;i++) {
if(i==56) {
continue;
}
System.out.println(i);
}
}//56不输出,其他都输出
练习
1、用户输入数字,如果是0,退出程序,界面如下:
2、得到用户从控制台输入的五个正整数,该整数为用户购买商品的价格,如果用户输入整数为0或负数,不计入统计,结束输入后计算用户一共需要花费的总金额。