交互
scanner对象
Java.util.Scanner是Java5的新特征,我们可以运用Scanner类来获取用户的输入
基本语法:
Scanner s=new Scanner(System.in);
next() 与nextLine()来获取字符
区别和特点:
next():
1、一定要读取到有效字符后才可以结束输入。
◆2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
◆3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
◆4、next()不能得到带有空格的字符串。
package com.yanna.Scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器的对象,用于导入搜键盘数据
Scanner scanner =new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户札输入字符串
if(scanner.hasNext()){
//使用next方式接收
String str= scanner.next();
System.out.println("输出端内容:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源
scanner.close();
}
}
nextLine():
◆1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
◆2、可以获得空白。
package com.yanna.Scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接收:");
//判断是否还有输入
if (scanner.hasNextLine()){
String str=scanner.nextLine();
System.out.println("输出的内容为:"+str);
}
scanner.close();
}
}
整数和小数
package com.yanna.Scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
//从键盘接收数据
int i=0;
float f=0.0f;
System.out.println("请输入整数");
if(scanner.hasNextInt()){
i=scanner.nextInt();
System.out.println("整数数据:"+i);
}else {
System.out.println("输入的不是整数数据!");
}
System.out.println("请输入小数:");
//如果。。。那么。。。
if(scanner.hasNextFloat()){
f=scanner.nextFloat();
System.out.println("小数数据:"+f);
}else {
System.out.println("输入的不是小数数据!");
}
}
}
交互范例
package com.yanna.Scanner;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//和
double sum=0;
//计算输入了多少个数字
int m =0;
//通过循环判断是否还有输入
while(scanner.hasNextDouble()){
double x= scanner.nextDouble();
//
m=m+1;//m++
sum=sum+x;
System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);
}
System.out.println(m+"个数的和为:"+m);
System.out.println(m+"个数的平均值是:"+(sum/m));
scanner.close();
}
}
流程控制
顺序结构
Java的基本结构就是顺序结构
是任何一个算法离不开的基本结构
package com.yanna.struct;
public class Demo01 {
public static void main(String[] args) {
System.out.println("hello1");
System.out.println("hello2");
System.out.println("hello3");
System.out.println("hello4");
System.out.println("hello5");
}
}
选择结构
if单选择结构
if(布尔表达式){
true就执行;
}
package com.yanna.struct;
import java.util.Scanner;
public class ifDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
String s= scanner.nextLine();
//equals:判断字符串是否相等
if(s.equals("hello")){
System.out.println(s);
}
System.out.println("end");
scanner.close();
}
}
if双选择结构
区别于上述即有else
package com.yanna.struct;
import java.util.Scanner;
public class ifDemo02 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入:");
int score =scanner.nextInt();
if(score<60){
System.out.println("不及格");
}else{
System.out.println("及格");
}
scanner.close();
}
}
if多选择结构
else if
package com.yanna.struct;
import java.util.Scanner;
public class ifDemo03 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入:");
int score =scanner.nextInt();
if(score>60&&score!=100){
System.out.println("及格");
}
else if(score==100){
System.out.println("恭喜满分");
}else{
System.out.println("不及格");
}
scanner.close();
}
}
switch多选择结构
switch(expression){
case value :
//语句
break;//可选
case value :
//语句
break;//可选
//你可以有任意数量的case语句
default ://可选
//语句
}
package com.yanna.struct;
public class switchDemo01 {
public static void main(String[] args) {
//case穿透,要加break
char grade ='D';
switch(grade){
case 'A':
System.out.println("优秀");
break;
case'B':
System.out.println("良好");
break;
case'C':
System.out.println("come on,baby");
break;
default:
System.out.println("未知");
}
}
}
现在Switch可以支持String类型的比较了
package com.yanna.struct;
public class switchDemo02 {
public static void main(String[] args) {
String name="yanna";
//jdk7的新属性,表达式结果可以使字符串!!!
//字符的本质还是数字 反编译: Java----class(字节码文件)----反编译(IDEA)
switch(name){
case"yana":
System.out.println("yana");
break;
case"yanna":
System.out.println("yanna");
break;
default:
System.out.println("nonono");
}
}
}
循环结构
-
while
-
do while
-
for
while循环
大多数情况是为了让循环停止下来,就需要一个把让表达式失效的方式来结束循环
package com.yanna.struct;
public class whileDemo01 {
public static void main(String[] args) {
//输出1~100
int i =0;
while(i<100){//避免死循环
i++;
System.out.println(i);
}
}
}
计算累加:
package com.yanna.struct;
public class whileDemo01 {
public static void main(String[] args) {
//输出1~100
int i =0;
int sum =0;
while(i<101){//避免死循环
sum=sum+i;
i++;
}
System.out.println(sum);//注意最后输出语句的位置
}
}
◆对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,
也至少执行一次。
◆do ... while 循环和 while循环相似,不同的是,do ... while循环至少会执行一次。
do {
}while(布尔表达式);
//代码语句
◆While和do-While的区别:
while先判断后执行。dowhile是先执行后判断!
◆Do ... while总是保证循环体会被至少执行一次!这是他们的主要差别。
package com.yanna.struct;
public class doWhileDemo01 {
public static void main(String[] args) {
int i=0;
int sum=0;
do{
sum=sum+i;
i++;
}while(i<=100);
System.out.println(sum);
}
}
package com.yanna.struct;
public class doWhileDemo03 {
public static void main(String[] args) {
int a=0;
while(a!=0);{
System.out.println(a);
a++;
}
System.out.println("===========");
do{
System.out.println(a);
a++;
}while(a<0);
}
}
For循环
◆for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
迭代循环的for头快捷键:
100.for
package com.yanna.struct;
public class forDemo01 {
public static void main(String[] args) {
int a=1;
while (a<=100){
System.out.println(a);
a+=2;
}
System.out.println(a);
//初始化,条件判断,迭代
for(int i=1;i<=100;i++){
System.out.println(i);
}
System.out.println("for循环结束");
/*
关于 for 循环有以下几点说明:
最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
然后,检测布尔表达式的值。如果为true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。
再次检测布尔表达式。循环执行上面的过程。
*/
}
}