一、Scanner控制台录入
- 控制台录入int类型
程序:请输入您的年龄?
用户:33
程序:经过大数据计算,您的寿命还有 xxx 天!
public static void main(String[] args) {
//1.创建Scanner类的对象
Scanner sc = new Scanner(System.in);
//2.提示用户输入年龄?
System.out.println("程序:请输入您的年龄?");
//3.接收用户输入的年龄
int age = sc.nextInt();
System.out.println("程序:你的时间还有"+(70-age)*365+"天,珍惜时间!");
}
- 案例2:
程序:请输入加密前的4位数字?
用户:1357
程序:加密后,这个4位数字是 2086
public static void main(String[] args) {
//1.创建Scanner类的对象
Scanner sc=new Scanner(System.in);
//2.提示用户输入一个4位数字
System.out.println("程序:请输入一个4位的整数!");
//3.接收4位数字,进行计算!
int number = sc.nextInt();
/*
*每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换
* 考察的是给你一个4位数字,怎么求个位十位百位千位?
*
* */
//个位 number 1357
int d = number % 10;
//十位
int c = number/10 % 10;
//百位
int b = number/100%10;
//千位
int a = number/1000;
//加5%10
d=(d+5)%10;
c=(c+5)%10;
b=(b+5)%10;
a=(a+5)%10;
number = d * 1000 + c * 100 + b * 10 + a;
System.out.println("程序:加密后的结果是:"+number);
}
- 控制台录入double类型 案例:BMI计算器
程序:请输入您的身高?(m)
用户:1.78
程序:请输入您的体重?(kg)
用户:98
程序:经过计算
正常指数应该是 18~24
您的BMI指数是 30.45
public static void main(String[] args) {
//1.创建Scanner类的对象
Scanner sc = new Scanner(System.in);
//2.提示用户输入身高?
System.out.println("程序:请输入您的身高?(m)");
//3.接收用户输入的身高
double high = sc.nextDouble();
//4.提示用户输入体重
System.out.println("程序:请输入您的体重?(kg)");
//5.接收用户输入的体重
double weight = sc.nextDouble();
//6.bmi计算公式=体重(公斤) ÷ 身高(米)的平方
double bmi = weight/(high*high);
//7.输出结果
System.out.println("程序:正常的bmi指数是19~24之间,而您的bmi指数是"+bmi+"!");
}
- 控制台录入String类型 案例:
客服:您好,请告诉我您要办理的业务?
用户:我不好,不办理!
客服:您的意思是,我不好,不办理?确定吗!
public static void main(String[] args) {
//1.创建Scanner类的对象
// Ctrl + Alt + v 快速返回
Scanner sc = new Scanner(System.in);
//2.提示用户输入
System.out.println("客服:您好,请告诉我您要办理的业务?");
//3.接收用户输入内容
String speak = sc.next();
//4.输出结果
System.out.println("客服:您的意思是,"+speak+",确定吗?");
}
二、选择语句
- if语句
语法:if(条件表达式){ if执行体 }
if 如果,关键字
条件表达式:只要结果是booelan类型字面值
if执行体: 可以写任意的内容(定义变量,输出语句,流程控制语句)案例:
程序:请输入成绩?
用户:59.9
程序:您考试不及格,回家等着挨揍去吧!
public static void main(String[] args) {
//1.创建Scanner类的对象
Scanner sc = new Scanner(System.in);
//2.提示用户输入成绩?
System.out.println("系统:请输入您的考试成绩?");
//3.接收用户输入的成绩
double score = sc.nextDouble();
//4.判断
if(score<60){
System.out.println("系统:回家挨揍去吧!");
}
}
if语句要注意的问题:
1. if()后面千万不要加分号,因为它不报错!
2. 省略大括号
2.1 只能有一句
2.2 这句不能定义变量
大括号作用是规范变量的作用域,也就是说,在哪对大括号定义的变量,就只能在这对大括号里使用!
- if-else语句
语法:if(条件表达式){if体}else{else体}
if(如果)-else(否则) 都是关键字
理解:条件表达式如果成立,执行if体
否则,执行else体
案例:
程序:请输入成绩?
用户:59.9 / 65.2
程序:您考试不及格,回家等着挨揍去吧!/您考试及格,回家等着去游乐场!
public static void main(String[] args) {
//1.创建Scanner类的对象
Scanner sc = new Scanner(System.in);
//2.提示用户输入成绩
System.out.println("系统:请输入您的考试成绩?");
//3.接收用户输入的成绩
double score = sc.nextDouble();
//4.判断
if(score>60){
System.out.println("系统:你爸带你去游乐场!");
}else {
System.out.println("系统:回去挨揍吧!");
}
System.out.println(score>=60 ? "系统:带你去游乐场!":"系统:回去挨揍吧!");
}
- if-else-if语句
语法:
if(条件1){if执行体1}
else if(条件2){if执行体2}
else if(条件3){if执行体3}
...
else{else执行体}
理解:条件表达式1如果不成立 继续判断条件表达式2 ,如果还不成立,继续判断条件式3...只要有一个成立,执行相应的if执行体,如果所有的条件表达式都不成立,执行else体!
控制台输入身高体重,告诉用户的情况!
偏瘦 ~ ≤ 18.5
正常 18.5 ≤ 24.0
过重 24.0 ≤ 28.0
肥胖 28.0 ≤ ~
public static void main(String[] args) {
//1.创建Scanner类的对象
Scanner sc = new Scanner(System.in);
//2.提示用户输入身高
System.out.println("系统:请输入您的身高?(m)");
//3.接收身高
double high = sc.nextDouble();
//4.提示用户输入体重
System.out.println("系统:请输入您的体重?(kg)");
//5.接收体重
double weight = sc.nextDouble();
//6.计算BMI
double bmi = weight / (high * high);
//7.判断(多种情况)
/*
偏瘦 ~ ≤ 18.5
正常 18.5 ≤ 24.0
过重 24.0 ≤ 28.0
肥胖 28.0 ≤ ~
*
* */
if (bmi <= 18.5) {
System.out.println("系统:您偏瘦,多吃肉!");
} else if (bmi <= 24) {
System.out.println("系统:您正常,继续保持!");
} else if (bmi <= 28) {
System.out.println("系统:您过重,少吃肉!");
} else {
System.out.println("系统:您肥胖,少吃肉,多锻炼!");
}
}
- switch语句
语法:
switch(字面值){
case 字面值1:
任意语句
break;
case 字面值2:
任意语句
break;
case 字面值3:
任意语句
break;
...
default :
任意语句
}关键字:switch 开关 case 情况/可能 break 结束switch语句
default 默认的,相当于else
理解:
switch的字面值和哪个case的字面值相等,就执行相应的语句
如果都不等,执行default的语句!
- 案例1:
日计划表
周一 ----------写代码
周二 ----------爬山
周三 ----------约会
周四 ----------看电影
周五 ----------钓鱼控制台输入1~5,表示周一到周五,做出相应的计划!
public static void main(String[] args) {
//1.创建Scanner类的对象
Scanner sc = new Scanner(System.in);
//2.提示用户输入1~5
System.out.println("系统:请输入1~5,查看日计划!");
//3.接收用户输入的数字
int i = sc.nextInt();
//4.判断
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;
case 5:
System.out.println("周五,钓鱼");
break;
default:
System.out.println("系统:请输入正确的1~5!");
}
}
switch语句注意的问题:
1.case穿透(没写break)
public static void main(String[] args) {
switch (300){
default:
System.out.println("系统:请输入正确的1~5!");
case 1:
System.out.println("周一,写代码");
case 2:
System.out.println("周二,爬山");
case 3:
System.out.println("周三,约会");
case 4:
System.out.println("周四,看电影");
case 5:
System.out.println("周五,钓鱼");
}
}
2.case并列
控制台输入月份,相应的季节输出!
春天--------3 4 5
夏天--------6 7 8
秋天--------9 10 11
冬天--------12 1 2
public static void main(String[] args) {
//1.创建Scanner类的对象
Scanner sc = new Scanner(System.in);
//2.提示用户输入月份
System.out.println("系统:请输入月份?");
//3.接收月份
int month = sc.nextInt();
//4.判断
switch (month){
case 3: case 4: case 5:
System.out.println("春天!");
break;
case 12: case 1: case 2:
System.out.println("冬天!");
break;
case 6: case 7: case 8:
System.out.println("夏天!");
break;
case 9: case 10: case 11:
System.out.println("秋天!");
break;
default:
System.out.println("系统:请输入地球中国的月份!!!1~12");
}
}
三、循环语句
- for
语法:for(初始表达式;条件表达式;迭代语句){ 循环体 }
初始表达式:定义有初始值的变量
条件表达式:只要结果是boolean类型的字面值
迭代语句 : ++ -- += *=
循环体 : 任何内容(输出语句,定义变量,流程控制语句)理解:先执行初始表达式,然后进行条件判断,如果成立,执行循环体,然后再进行迭代语句,然后继续判断条件,如果还成立,继续执行循环体,继续迭代语句,然后继续判断...条件表达式不成立,程序立刻结束!
案例:输出5次HelloWorld
public static void main(String[] args) { for(int i=1;i<=5;i++){ System.out.println("HelloWorld!"); } } for循环的其他写法: 1. 扩大初始表达式的作用域 public static void main(String[] args) { //int i =1; 它作用域是循环体 int i=1; for(;i<=5;i++){ System.out.println(i); } System.out.println("i最终是:"+i); } } int i; for(i=1;i<=5;i++){ System.out.println(i); } System.out.println("i最终是:"+i); //错误的示范!!!!!!!!!!!!!!!! int i=1; for(i;i<=5;i++){ System.out.println(i); } System.out.println("i最终是:"+i); 2. 初始表达式恒成立(死循环) public static void main(String[] args) { // for(int i=1;true;i++){ // System.out.println(i); // } // for(int i=1;1==1;i++){ // System.out.println(i); // } for(int i=1;;i++){ System.out.println(i); } } 3.迭代语句多样化 public static void main(String[] args) { for(int i=1;i<=10; ){ i+=3; System.out.println(i); } } 4. 多个初始表达式,多个迭代语句 public static void main(String[] args) { for(int a=1,b=10;a<b;a++,b--){ System.out.println(a+"-----------------"+b); } }
- while
语法:while(条件表达式){ 循环体 }
理解:条件表达式成立,执行循环体,然后继续判断条件表达式,如果还成立,继续执行循环体,继续判断,直到条件表达式不成立为止!
//案例:输出5次HelloWorld
public static void main(String[] args) {
int i=1;
while (i<=5){
System.out.println("HelloWorld");
i++;
}
}
其他写法:
迭代语句和条件组合
public static void main(String[] args) {
int i=1;
while (++i<=5){
System.out.println("HelloWorld");
}
}
- do-while
语法:do{循环体}while(条件表达式);
理解:先执行循环体,然后再条件判断,如果成立,继续循环体。。。直到不成立为止!注意:即使条件表达式第一次就不成立,循环体也会执行一次!
public static void main(String[] args) {
int i=5;
do{
i--;
System.out.println("HelloWorld");
}while (i>=1);
}
案例:输出5次HelloWorld
总结:
for while do-while都可以省略
public static void main(String[] args) {
for(int i=1;i<=5;i++)
System.out.println(i);
System.out.println("---------");
int j=1;
while (j<=5)
System.out.println(j++);
System.out.println("-----------");
int x=1;
do
System.out.println( x++);
while (x<=5);
}
2.for,while,do-while区别?
for和 while、do-while 比较
for是封闭的独立的循环,使用更多!
while和do-while 比较
如果条件表达式第一次就不成立,那么do-while也会执行一次循环体
四、嵌套问题
- 案例 :登录案例!
public static void main(String[] args) {
//1.创建Scanner类的对象
Scanner sc = new Scanner(System.in);
//2.提示用户输入用户名
System.out.println("系统:请输入用户名?");
//3.接收用户名
int username = sc.nextInt();
//4.if-else语句
if (888 == username) {
//5.提示用户输入
System.out.println("系统:请输入密码?");
//6.接收密码
int password = sc.nextInt();
//7.if-else判断
if (666 == password) {
System.out.println("系统:登录成功,欢迎xxx!");
} else {
System.out.println("系统:密码错误。。。。");
}
} else {
System.out.println("系统:用户名不存在。。。");
}
}
- 循环嵌套选择.
public static void main(String[] args) {
for(int i=1;i<=100;i++){
//i除以2的余数是0
if (i%2==0) {
System.out.println(i);
}
}
}
- 循环嵌套循环
案例:打印长方形!
***
***
***
//打印一颗星
System.out.println("*");
* print和println
println 先输出后换行
print 只输出,不换行
----
println()表示换行
print()不写报错
/ 斜杠
\ 反斜杠 (转义符)
打印一行星
public static void main(String[] args) {
//打印一行星(循环)
System.out.print("😂");
System.out.print("😂");
System.out.print("😂");
System.out.print("😂");
System.out.println();
System.out.println("================");
for(int i=1;i<=4;i++){
System.out.print("😂");
}
System.out.println();
}
打印三行
public static void main(String[] args) {
//打印三行星
for(int i=1;i<=4;i++){
System.out.print("😂");
}
System.out.println();
for(int i=1;i<=4;i++){
System.out.print("😂");
}
System.out.println();
for(int i=1;i<=4;i++){
System.out.print("😂");
}
System.out.println();
System.out.println("-------------------------");
for(int j=1;j<=3;j++){
//打印一航星,换行
for(int i=1;i<=4;i++){
System.out.print("😂");
}
System.out.println();
}
}
///
//多层循环嵌套,从内往外看!!!
public static void main(String[] args) {
// System.out.println(""");
System.out.println('"');
//System.out.println(''');
System.out.println("'");
// \ 转义符,把原来的意思转换成其他意思
System.out.println("\"");
System.out.println('\'');
System.out.println("\\");
System.out.println("小明\t小红");
System.out.println("小明\n小红");
System.out.println('\u4e2d');
}
五、continue、break、return关键字
continue 只能用于循环,结束当次循环,继续进行下一次循环!
break
1.用于switch语句,结束整个switch
2.用于循环语句,结束整个循环(如果两个循环嵌套,break只能结束它所在的那个循环)
return 结束当前的方法
public static void main(String[] args) {
System.out.println("程序开始================");
for(int i=1;i<=10;i++){
if (i==5) {
return;
}
System.out.println(i);
}
System.out.println("程序结束================");
}