果然,我之前全是吃的老底,今天接触的新知识已经有点吃力了。
今天学习了Java的输入语句,分支结构的最后两种以及循环结构的前两种,总体来说,今天的知识量还是可以接受的,就是有点些许的吃力。对了,老师还给补充了一种随机数运用。
一、Scanner接收用户输入的数据:共三步
1.包名下:import java.util.Scanner;
2.main函数下:Scanner s=new Scanner(System.in);
3.接收用户输入:int num=s.nextInt();
二、分支结构
1.if-else if结构:多条路
语法:
if(boolean1){
语句块1
}else if(boolean2){
语句块2
}else if(boolean3){
语句块3
}.............
..else{
语句块n
}
执行过程:
判断boolean1,若为true,则执行语句块1(整个结束),若为false,则再判断boolean2,若为true,则执行语句块2(整个结束),若为false,则再判断boolean3(整个结束),若为true,则执行语句块3(整个结束),若为false,再判断boolean3.........直到所有boolean判断结束且都为false,则执行else中的语句块n
说明:
if-else if中所有语句块,必走其中之一
switch-case结构:多条路
优点:效率高、结构清晰
缺点:只能对整数判断相等
break:跳出整个switch结构
-----switch后的数据类型可以是byte、short、char、int、String、枚举类型,不能是long
三、循环:反复多次执行相同或者相似的代码
四、循环三要素
循环变量的初始化
循环的条件(基于循环变量)
循环变量的改变
五、循环结构
while:先判断后执行,可以不执行
语法:
while(boolean){
语句块/循环体
}
执行过程:
判断boolean,若为true则执行语句块,再判断boolean,若为true则继续执行语句块,直到boolean的值为false,结束循环
do-while:先执行后判断,循环体必执行一次
语法:
do{
语句块/循环体
}while(boolean);
执行过程:
先执行语句块,然后判断boolean,若为true则继续执行语句块,直到boolean为false,do-while结构结束
-----当第一要素和第三要素相同时,首选do-while循环
六、生成随机数
Math.random()-------生成0.0到0.999999999......
七、变量的作用域/范围
从变量的声明开始,到包含它最近的大括号结束
八、今日代码
Scanner scan=new Scanner(System.in); System.out.println("请输入你的名字"); String name=scan.nextLine(); System.out.println("请输入你的年龄"); int age=scan.nextInt(); System.out.println("请输入你的身高"); double height=scan.nextDouble(); System.out.println("你好,我的名字是"+name+",今年"+age+"岁了,我的身高是"+height);
import java.util.Scanner; //成绩等级判断 public class ScoreLevel { public static void main(String[] args){ //接收用户输入的成绩score(double),并输出 Scanner s=new Scanner(System.in); System.out.println("请输入成绩"); double score=s.nextDouble(); if(score>=0&&score<=100){ if(score>=90){ System.out.println("A-优秀"); }else if(score>=80){ System.out.println("B-良好"); }else if(score>=60){ System.out.println("C-及格"); }else{ System.out.println("D-不及格"); } }else{ System.out.println("成绩不合法"); } /* Scanner s=new Scanner(System.in); System.out.println("请输入成绩"); double score=s.nextDouble(); if(score>100||score<0){ System.out.println("成绩不合法"); }else if(score>=90){ System.out.println("A-优秀"); }else if(score>=80){ System.out.println("B-良好"); }else if(score>=60){ System.out.println("C-及格"); }else{ System.out.println("D-不及格"); } */ /* Scanner s=new Scanner(System.in); System.out.println("请输入成绩"); double score=s.nextDouble(); if(score>100||score<0){ System.out.println("成绩不合法"); }else if(score>=90){ System.out.println("A-优秀"); }else if(score>=80){ System.out.println("B-良好"); }else if(score>=60){ System.out.println("C-及格"); }else{ System.out.println("D-不及格"); } */ /* Scanner s=new Scanner(System.in); System.out.println("请输入成绩"); double score=s.nextDouble(); //char level; if(score>100||score<0){ System.out.println("成绩不合法"); }else if(score>=90){ System.out.println("A-优秀");//level='A'; }else if(score>=80){ System.out.println("B-良好"); }else if(score>=60){ System.out.println("C-及格"); }else{ System.out.println("D-不及格"); } //System.out.println("成绩是"+score); */ /* Scanner s=new Scanner(System.in); System.out.println("请输入成绩"); double score=s.nextDouble(); System.out.println("成绩是"+score); */ /* Scanner s=new Scanner(System.in); System.out.println("请输入你的成绩"); double score=s.nextDouble(); System.out.println("你的成绩是"+score); */ /* Scanner scan=new Scanner(System.in); System.out.println("请输入你的成绩"); double score=scan.nextDouble(); System.out.println("你的成绩是:"+score); */ }
}
import java.util.Scanner; //命令解析程序 public class CommandBySwitch { public static void main(String[] args){ Scanner s=new Scanner(System.in); System.out.println("请选择功能:1.吃饭 2.喝水 3.上厕所 4.洗澡"); int command=s.nextInt(); switch(command){ 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("输入错误"); } /* Scanner s=new Scanner(System.in); System.out.println("请选择功能:1.存款 2.取款 3.查询余额 4.退卡"); int command=s.nextInt(); 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("输入错误"); } */ /* switch(command){ 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("输入错误"); } */ /* Scanner scan=new Scanner(System.in); System.out.println("请选择功能:1.存款 2.取款 3.查询余额 4.退卡"); int command=scan.nextInt(); switch(command){ 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("输入错误"); } //System.out.println("你输入的命令是:"+command); */ } }
//输出9的乘法表 /* num=1 true 输出 num=2 true 输出 num=3 true 输出 num=4 true 输出 num=5 true 输出 num=6 true 输出 num=7 true 输出 num=8 true 输出 num=9 true 输出 num=10 false 结束循环 */ /* int num=1; while(num<=9){ System.out.println(num+"*9="+num*9); num++; } System.out.println("庆贺吧...."); */ /* int num=1; while(num<10){ System.out.println(num+"*9="+9*num); num++; } System.out.println("庆贺吧...."); */ /* int num=1; while(num<=9){ System.out.println(num+"*9="+num*9); num++; } System.out.println("庆贺吧...."); */ /* num=1 true 输出 num=2 true 输出 num=3 true 输出 num=4 true 输出 num=5 true 输出 num=6 true 输出 num=7 true 输出 num=8 true 输出 num=9 true 输出 num=10 false 结束循环 */ /* int num=1; while(num<10){ System.out.println(num+"*9="+9*num); num++; } System.out.println("庆贺吧...."); */ /* int num=1; while(num<=9){ System.out.println(num+"*9="+9*num); num++; } System.out.println("庆贺吧..."); */ //输出五次“行动是成功的阶梯” /* int times=0; while(times<5){ System.out.println("行动是成功的阶梯"); times++; } System.out.println("庆贺吧"); */ /* int times=0;//循环变量的初始化 while(times<5){//循环的条件 System.out.println("行动是成功的阶梯"); times++;//循环变量的改变 } System.out.println("继续执行..."); */ /* int num=1; while(num<=9){ System.out.println(num+"*9="+num*9); num+=2; } */ /* int num=1; while(num<=9){ System.out.println(num+"*9="+9*num); num++; } */ /* int num=0; while(num<5){ System.out.println("行动是成功的阶梯"); num++; } */ /* int a=0; while(a<6){ System.out.println("第"+(++a)+"份"); } */ /* int a=0; while(a<10){ System.out.println("这是我抄的第"+(++a)+"遍"); //a++; } */
//猜数字小游戏 import java.util.Scanner; import java.util.Random; public class Guessing { public static void main(String[] args){ Scanner s=new Scanner(System.in); int num=(int)(Math.random()*1000+1); int guess; do{ System.out.println("猜吧"); guess=s.nextInt(); if(guess>num){ System.out.println("大了"); }else if(guess<num){ System.out.println("小了"); }else{ System.out.println("庆贺吧...."); } }while(guess!=num); /* Scanner s=new Scanner(System.in); int num=(int)(Math.random()*1000+1); int guess; do{ System.out.println("猜吧"); guess=s.nextInt(); if(guess>num){ System.out.println("大了"); }else if(num>guess){ System.out.println("小了"); }else{ System.out.println("庆贺吧...."); } }while(guess!=num); */ /* Scanner s=new Scanner(System.in); int num=(int)(Math.random()*1000+1); int guess; do{ System.out.println("猜吧"); guess=s.nextInt(); if(guess>num){ System.out.println("大了"); }else if(num>guess){ System.out.println("小了"); } }while(guess!=num); System.out.println("庆贺吧...."); */ /* System.out.println("猜吧"); int guess=s.nextInt(); while(guess!=num){ if(guess>num){ System.out.println("大了"); }else{ System.out.println("小了"); } System.out.println("猜吧"); guess=s.nextInt(); } System.out.println("庆贺吧....."); */ /* Scanner s=new Scanner(System.in); int num=(int)(Math.random()*1000+1); System.out.println("猜吧"); int guess=s.nextInt(); while(guess!=num){ if(guess>num){ System.out.println("大了"); }else{ System.out.println("小了"); } System.out.println("猜吧"); guess=s.nextInt(); } System.out.println("庆贺吧...."); */ /* Scanner s=new Scanner(System.in); Random r=new Random(); int num=r.nextInt(1000); System.out.println("猜吧"); int guess=s.nextInt(); while(guess!=num){ if(guess>num){ System.out.println("大了"); }else{ System.out.println("小了"); } System.out.println("猜吧"); guess=s.nextInt(); } System.out.println("庆贺吧...."); */ /* Scanner s=new Scanner(System.in); Random r=new Random(); int num=r.nextInt(1000); System.out.println("猜吧"); int guess=s.nextInt(); while(guess!=num){ if(guess<num){ System.out.println("小了"); }else{ System.out.println("大了"); } System.out.println("猜吧"); guess=s.nextInt(); } System.out.println("庆贺吧...."); */ /* Scanner s=new Scanner(System.in); int num=232; System.out.println("猜吧"); int guess=s.nextInt(); while(guess!=num){ if(guess>num){ System.out.println("大了"); }else{ System.out.println("小了"); } System.out.println("猜吧"); guess=s.nextInt(); } System.out.println("庆贺吧...."); */ /* Scanner s=new Scanner(System.in); int num=50; //手里藏得数 System.out.println("猜吧"); //提示用户开始猜数 int guess=s.nextInt(); //接收 第一要素 while(guess!=num){ //第二要素 if(num<guess){ System.out.println("大了"); }else{ System.out.println("小了"); } System.out.println("继续猜吧"); //提示用户继续猜数 guess=s.nextInt(); //接收 第三要素 } System.out.println("庆贺吧...."); */ } }
import java.util.Scanner; public class Practice { public static void main(String[] args){ /* 4.Guessing猜数字之do...while版 要求:随机生成一个数,由用户来猜,猜不对则反复猜,并给出大小提示,猜对的则结束,用do...while来实现。 */ Scanner s=new Scanner(System.in); int num=(int)(Math.random()*1000+1); int guess; do{ System.out.println("猜吧"); guess=s.nextInt(); if(guess>num){ System.out.println("大了"); }else if(guess<num){ System.out.println("小了"); }else{ System.out.println("庆贺吧...."); } }while(guess!=num); /* 3.Guessing猜数字之while版: 要求:随机生成一个数,由用户来猜,猜不对则反复猜,并给出大小提示,猜对的则结束,用while来实现。 */ /* Scanner s=new Scanner(System.in); int num=(int)(Math.random()*1000+1); System.out.println("猜吧"); int guess=s.nextInt(); while(guess!=num){ if(guess>num){ System.out.println("大了"); }else{ System.out.println("小了"); } System.out.println("猜吧"); guess=s.nextInt(); } System.out.println("庆贺吧...."); */ /* 2.CommandBySwitch命令解析程序: 要求:接收用户输入的命令,依据命令做不同的操作 */ /* Scanner s=new Scanner(System.in); System.out.println("请选择命令:1.权威 2.人体 3.硬盘 4.速度"); int command=s.nextInt(); switch(command){ 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("输入有误"); } */ /* 1.ScoreLevel成绩等级判断: 要求:接收用户输入的成绩,判断成绩的等级ABCD */ /* Scanner s=new Scanner(System.in); System.out.println("请输入成绩"); double score=s.nextDouble(); if(score>=0&&score<=100){ if(score>=90){ System.out.println("A-优秀"); }else if(score>=80) { System.out.println("B-良好"); }else if(score>=60){ System.out.println("C-及格"); }else{ System.out.println("D-不及格"); } }else{ System.out.println("成绩不合法"); } */ /* Scanner s=new Scanner(System.in); System.out.println("请输入成绩"); double score=s.nextDouble(); if(score>100||score<0){ System.out.println("成绩不合法"); }else if(score>=90){ System.out.println("A-优秀"); }else if(score>=80){ System.out.println("B-良好"); }else if(score>=60){ System.out.println("C-及格"); }else{ System.out.println("D-不及格"); } */ /* 4.Guessing猜数字之do...while版 要求:随机生成一个数,由用户来猜,猜不对则反复猜,并给出大小提示,猜对的则结束,用do...while来实现。 */ /* Scanner s=new Scanner(System.in); int num=(int)(Math.random()*1000+1); int guess; do{ System.out.println("猜吧"); guess=s.nextInt(); if(guess>num){ System.out.println("大了"); }else if(guess<num){ System.out.println("小了"); }else{ System.out.println("庆贺吧...."); } }while(guess!=num); */ /* 3.Guessing猜数字之while版: 要求:随机生成一个数,由用户来猜,猜不对则反复猜,并给出大小提示,猜对的则结束,用while来实现。 */ /* Scanner s=new Scanner(System.in); int num=(int)(Math.random()*1000+1); System.out.println("猜吧"); int guess=s.nextInt(); while(guess!=num){ if(guess>num){ System.out.println("大了"); }else{ System.out.println("小了"); } System.out.println("猜吧"); guess=s.nextInt(); } System.out.println("庆贺吧..."); */ /* 2.CommandBySwitch命令解析程序: 要求:接收用户输入的命令,依据命令做不同的操作 */ /* Scanner s=new Scanner(System.in); System.out.println("请选择命令:1.吃饭 2.睡觉 3.做作业 4.跳舞"); int input=s.nextInt(); switch(input) { 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("输入错误"); } */ /* 1.ScoreLevel成绩等级判断: 要求:接收用户输入的成绩,判断成绩的等级ABCD */ /* Scanner s=new Scanner(System.in); System.out.println("请输入成绩"); double score=s.nextDouble(); if(score>100||score<0){ System.out.println("成绩不合法"); }else if(score>=90){ System.out.println("A"); }else if(score>=80){ System.out.println("B"); }else if(score>=60){ System.out.println("C"); }else{ System.out.println("D"); } */ } }
import java.util.Scanner; public class Exercise { public static void main(String[] args){ //3.利用循环语句while计算数字1到100的和,并输出 int num=1; int sum=0; while(num<=100){ sum+=num; num++; } System.out.println("1到100的和为"+sum); //2.接收用户输入的年份year和月份month,计算该年该月的天数,并输出 /* Scanner s=new Scanner(System.in); System.out.println("请输入年份"); int year=s.nextInt(); System.out.println("请输入月份"); int month=s.nextInt(); if(year%400==0||(year%4==0&&year%100!=0)){ System.out.println(year+"年有366天"); }else{ System.out.println(year+"年有365天"); } switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println(month+"月有31天"); break; case 2: if(year%400==0||(year%4==0&&year%100!=0)){ System.out.println(month+"月有29天"); }else{ System.out.println(month+"月有28天"); } break; case 4: case 6: case 9: case 11: System.out.println(month+"月有30天"); break; default: System.out.println("月份不合法"); } */ /* 1.接收用户输入的一个整数num,判断它的正负零值,正数则输出"+",负数则输出"-",0则输出"0" */ /* Scanner s=new Scanner(System.in); System.out.println("请输入一个整数"); int num=s.nextInt(); if(num>0){ System.out.println("+"); }else if(num<0){ System.out.println("-"); }else{ System.out.println("0"); } */ } }