之前的基本语法没有实现程序和人的交互,但Java给我们提供了一个工具类Scanner可以用来获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入
基本语法
Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextline()方法获取输入的字符串,在读取之前我们一般需要使用hasNext() 与 hasNextLine()判断是否还有输入的数据
next()
nextline()
\\next()应用 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()){ //接受用户的输入 String str = scanner.next(); System.out.println("输出的内容为:"+str); } //凡是属于IO流的类如果不关闭就会一直占用资源,要养成好习惯用完就关掉 scanner.close(); } }
\\nextline()应用 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(); } }
// 实例 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(); // System.out.println("你输入了第"+m+"个数据,当前结果sum="+sum); m++; sum = x+sum;// sum+=x; System.out.println("你输入了第"+m+"个数据,当前结果sum="+sum); } System.out.println(m+"个数的总和为:"+sum); System.out.println(m+"个数的平均值为:"+sum/m); scanner.close(); } }
if单选结构
语法:
if(布尔表达式){ // 如果布尔表达式为true执行的语句 }
if双选结构
if多选择结构
if(){ }else if(){ }else if(){ }else { }
嵌套的if结构
switch多选择结构
while循环
最基本的循环,它的结构为
while(布尔表达式){ //循环内容 }
只要表达式为true,循环就会一种会循环下去
大多数情况下,我们需要一个让表达式失效的方式来结束循环
少部分情况下需要程序一直执行,如服务器的请求响应
do...while循环
对于while循环而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件也至少执行一次
而do...while 循环与while最大的不同就是至少执行一次
while与do...while区别:
do{ //代码语句 }while(布尔表达式)
for循环
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
for循环的执行次数是在执行前确定的,语法格式如下:
for(初始化;布尔表达式;更新){ //代码语句 }
//100.for可以在IDEA中快捷输入for循环
在Java5中引入了一种主要用于数组的增强型for循环
先了解,后面再仔细学习
用于循环数组和集合的
语法格式:
for(声明语句:表达式){ //代码语句 }
public class ForDemo05 { public static void main(String[] args) { int [] numbers = {10, 20, 30, 40, 50}; //定义了一个数组 for (int i = 0; i < 5; i++) { System.out.println(numbers[i]); } System.out.println("================"); //遍历数组的元素 for (int x:numbers){ System.out.println(x); } } }
// break在任何循环语句的主体部分,均可用break控制循环的流程 // break用于强行退出循环,不执行循环中剩余的语句(也在switch中使用) // // continue 语句在循环语句体中,用于种植某次循环过程,即跳过循环体中尚未执行的语句。接着进行下一次是否执行循环的判定
关于goto关键字
public class TestDemo { public static void main(String[] args) { //打印三角形 5行 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=2; j<=i;j++){ System.out.print("*"); } System.out.println(); } } }