前一篇里面没有实现程序与人的交互,Java里面有一个工具类,我们可以用来获取用户的输入。java.util.Scanner。
基本语法:
Scanner s= new Scanner(System.in);
实例:1.这里采用next方法
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器(Scanner)对象,用于接收键盘数据
Scanner s = new Scanner(System.in);//System.in表示接收键盘数据
//使用next方法接收
System.out.println("使用next方法接收");
//判断用户有没有输入字符串,if是判断语句
if(s.hasNext()){
String str = s.next();//定义一个字符串str接收输入的字符串
System.out.println("输入的内容是"+str);//打印输入内容
}
//凡是属于IO流的类如果不关闭会一直占用资源,养成好的习惯
s.close();//关闭s
}
}
我们输入 hello world
可以看到结果只输出了hello
2.这里采用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();
}
}
我们还是输入 hello world
我们可以看到输出结果为hello world
好了,这里我们总结一下:
next():
一定要读取到有效字符后才可以结束输入。
对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next()不能得到带有空格的字符串。
nextLine():
除了上面的next()和nextLine()方法以外,还有nextInt():接收整数,nextDouble():接收小数等方法,可以去百度或者查JDK的API。
示例:
//顺序结构演示
public class Demo03 {
public static void main(String[] args) {
//下面这些语句会按顺序执行
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
}
}
结果:
很多时候都需要去判断一个东西是否可行,然后执行,这样的语句用if语句来表示
语法:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
这里太简单了,而且前面也有演示就不做专门示例了
双选择结构也是非常常见的,用if...else语句来表示
语法
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}else{
//布尔表达式为false将执行的语句
}
运用示例:
import java.util.Scanner;
//if双选择结构
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
//这里判断输入的字符串是否为"对",equal()是一个判断字符串相等的方法
if(str.equals("对")){
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
}
}
我们先输入正确的“对”
再输入错误的内容
在实际情况中选择的个数可能会很多,这里需要用多选择结构if...else if...else
语法:
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式3的值为true执行代码
}else{
//如果以上布尔表达式都不为true执行代码
}
示例
if 语句至多有1个else语句,else语句在所有else if语句之后.
一旦里面有一个布尔表达式为true,剩下的else if和最后的else都将跳过执行
import java.util.Scanner;
//多选择结构
public class Demo05 {
public static void main(String[] args) {
//规定60分以下为不及格,60-85为良,85分以上为优秀
Scanner scanner = new Scanner(System.in);
int grade = scanner.nextInt();//定义输入成绩的变量grade
//多选择判断
if(grade<60){
System.out.println("不及格");
}else if(60<=grade&&grade<85){
System.out.println("良");
}else {
System.out.println("优秀");
}
}
}
当输入55时
当输入65时
当输入90时
就是在符合条件if语句里面继续判断嵌套if
语法:
if(布尔表达式){
//如果布尔表达式1值为true执行语句
if(布尔表达式 2){
//如果布尔表达式2的值为ture执行语句
}
}
还有一种多选择结构就是switch。
switch case语句判断一个变量与一系列值中某一值是否相等。
语法:
switch (expression){//这里expression是被判断的变量
case value1:
//被执行的语句
break;//可选
case value1:
//被执行的语句
break;//可选
default://可选
//以上value值都不相等就执行这里的语句
//执行的语句
}
switch语句中的变量类型可以是:
byte.short、int或者char。
从Java SE 7开始
switch支持字符串 String类型了
同时case标签必须为字符串常量或字面量。
示例:
//switch演示
public class Demo06 {
public static void main(String[] args) {
char grade = ‘C‘;
switch (grade){
case ‘A‘:
System.out.println("优秀");
case ‘B‘:
System.out.println("良好");
case ‘C‘:
System.out.println("及格");
case ‘D‘:
System.out.println("不及格");
default:
System.out.println("未知等级");
}
}
}
上面的代码没有添加break(可选),因为我想看看后果,输入结果为下图
原因:因为没有写break造成case穿透(从匹配到的结果开始执行下面每一条语句)
所以我们添加上break后
结论:虽然break;不添加没有报错,但是也会引起结果不理想。
while是最基本的循环,它的结构为
while(布尔表达式){
//循环内容
}
示例:
//while演示
public class Demo07 {
public static void main(String[] args) {
//循环扣666
int i = 0;//计数循环次数
while(i<3){//循环扣3次6
System.out.print(6);//不换行输出一个6,print是不换行输出,println是输出后换行
i++;//计数一次循环,每次循环加一
}
}
}
输出结果为:
对于while循环来说,如果不符合条件,他一次循环都不会执行,有时候我们需要先执行才能判断,这时候就用do...while
do...while和while使用方法类似,这里不做示例
语法:
do{
//代码语句
}while(布尔表达式);
注意这里;容易漏掉
虽然所有的循环结构都可以用while,do..while来表示,Java还是有一种叫for的循环,可以让一些循环变的简单。
for(初始化;布尔表达式;更新){
//代码语句,也叫循环体
}
下面拿1加到100作为示例:
//for循环
public class Demo08 {
public static void main(String[] args) {
//1+..100
int sum = 0;//定义一个变量:总和
//循环结构
//初始化值 //条件判断 //迭代
for(int i=0; i<100; i++){//这里i是从0开始,到99刚好循环100次
sum+=i+1;//这里是偷懒写法,跟sum=sum+i+1一个意思,这里i初始为0,而我们要从1开始累加,所以i+1
}
System.out.println("1累加到100结果为"+sum);//打印结果
}
}
关于for循环有以下几点说明:
java5之后引入的主要用于数组和集合的增强For循环
语法格式:
for(声明语句 :表达式){
//代码句子
}
示例:
//增强for循环演示
public class Demo09 {
public static void main(String[] args) {
int[] nums = {10,10,154,147,15};//这里定义一个数组
//增强for循环遍历数组nums
for (int num : nums) {//解释:这里就是把集合nums里面的每一个元素按照从前往后的顺序赋予num,直到nums集合中没有元素
System.out.println(num);
}
}
}
示例:
public class Demo010 {
public static void main(String[] args) {
//我们规定在打印到50的时候退出循环
for (int i = 0; i < 100; i++) {
System.out.println(i);
if(i==50){
break;//i=50时终止循环
}
}
}
}
结果如图:
示例:
public class Demo11 {
public static void main(String[] args) {
//规定在i=50时,跳过50不输出,继续输出后面的
for (int i = 0; i < 100; i++) {
if(i==50){
continue;//跳过50
}
System.out.println(i);
}
}
}
结果如图:
本篇文章主要是个人的学习日记,希望各位大佬指正
原文:https://www.cnblogs.com/YYwantMore/p/14390090.html