人与程序交互的Scanner
我们可通过Scanner类来获取用户的输入
Scanner基本语法:Scanner sc=new Scanner(System.in);
通过 Scanner 类的 next() 和 nextLine()方法获取输入的字符串;
在读取前一般需要使用 hasNext() 和 hasNextLine()判断是否还有输入的数据。
if (sc.hasNext()){//后面没有加==就默认为true //使用next接收数据 String str=sc.next(); //程序会一直等待用户输入完毕 System.out.println("输出的内容为:"+str); }
nextLine():// 以回车为结束符
1、nextLine() 方法返回输入回车之前的所有字符;
2、可以获得空白。
next():// 以空格为结束符
1、一定要读取到有效字符后才可以结束输入;
2、对输入的有效字符之前遇到空白,next() 方法会自动将其去掉;
3、只有输入有效字符后才将其后面输入的空白作为分隔符或结束符;
4、next() 不能得到带有空格的字符串.
//输入数据Scanner sc=new Scanner(System.in);//接收数据String str=sc.nextLint();//关闭sc.close();
对于Scanner类的常用方法:
String nextLine() 接收控制台输入的一个字符串
int nextInt() 接收控制台输入的一个int型数据
double nextDouble() 接收控制台输入的一个double型数据
note : 对于char类型输入的数据 Scanner 类没有提供直接输入char类型的方法,可通过 chatAt() 方法从 next() 或者nextLine () 获取输入的字符
if选择结构
语法
if(布尔表达式){ //布尔表达式为true时执行}else{ //布尔表达式为flase时执行}//多选择结构//只执行其中一个if(布尔表达式1){ //布尔表达式1为true时执行}else if(布尔表达式2){ //布尔表达式2为true时执行}else if(布尔表达式3){ //布尔表达式3为true时执行}else{ //以上都不满足}
switch多选择结构switch case 语句判断一个变量与一系列值中某个值是否相等,每一个值称为一个分支.
switch(expression){ case value1: //语句1 case value2: //语句2 break; ````````//可以有任意数量的case语句 default: //语句n+1 }
char grade='A'; switch(grade){ case 'A': //执行 System.out.println("优秀"); case'B': System.out.println("良好"); break; default: System.out.println("未知等级"); }
反编译打开图示:
点开“我的电脑”,导航栏粘贴地址,找到对应demo的class文件复制 ,在IDEA中找到需要反编译的demo ,鼠标右键,打开所在文件夹下(show in Explorer)将前面所复制的class文件粘贴到该文件夹下,此时在IDEA中会生成一个新的demo,打开即可查看。
循环结构 最基本的while循环while(布尔表达式){ //语句体}
只要布尔表达式 为true,循环就会一直下去造成死循环,我们应尽量避免;
我们大多需要一个让表达式失效的方式来结束循环,少部分情况需要一直循环,比如服务器的请求响应监听等;
//1+2+ ……+100public static void main(String[] args) { //1+……+100 int i=0; int sum=0; while (i<=100) { sum = sum + i; i++; } System.out.println(sum);//5050
do……while循环对于while来说不满足条件则不能进入循环,do……while循环至少执行一次;
//初始化表达式 // 1do{ //语句体1 // 3 //语句体2 // 4}while(布尔表达式); // 2//执行顺序为 134>234>234……2不满足条件为止
for循环是最有效、最灵活的循环结构
for(初始化变量;布尔表达式;变量更新){ //语句体}
在IDEA中使用快捷键 例如:100.for加回车可自动生成
//1——100能被5整除的数,且每行输出3个 public static void main(String[] args) { for (int i = 5; i <=100; i++) { if (i%5==0){ System.out.print(i+"t"); } if (i%(5*3)==0){ System.out.print("n"); //System.out.println(""); } } }
//九九乘法表public static void main(String[] args) { //打印第一列,嵌套循环,去掉重复,调整样式 for (int i = 1; i <= 9; i++) { for (int j = 1; j <=i; j++) { System.out.print(j+"*"+i+"="+(j*i)+"t"); } System.out.println();//换行 } }
for和while的区别:
控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到
了,⽽while循环结束还可以继 续使⽤,如果你想继续使⽤,就⽤while,
否则推荐使⽤for。原因是for循环结束,该变量就从内存中消 失,能够提
⾼内存的使⽤效率。
在已知循环次数的时候使⽤推荐使⽤for,循环次数未知的时推荐使⽤
while。
增强for循环public static void main(String[] args) { int[] numbers={10,20,30,40,50}; //遍历数组元素 for (int x:numbers){ System.out.print(x+" "); } }
跳出语句 breakbreak在任何循环语句的主体部分,均可使用break,强制退出循环,并不是结束程序;
continuecontinue在循环语句体中,用于终止某次循环过程,即跳过循环语句中未执行的语句,接着进行下一次是否执行循环的判定;(结束本次循环,继续下次循环)
打印三角形public static void main(String[] args) { //打印三角形 for (int i = 1; i <= 5; i++) { for (int j = 5; j >=i ; j--) { System.out.print(" ");//左上角空格的倒三角形 } for (int j = 1; j <=i ; j++) { System.out.print("*");//第二部分的三角形 } for (int j = 1; j