用户交互Scanner
-
java.until.Scanner是Java5的新特性,我们可以通过Scanner类来获取用户输入
-
基本语法:
Scanner s = new Scanner (System.in);
-
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们需要使用hasNext() 与hasNextLine()判断是否还有输入的数据
next() 和 nextline()区别(字符型)
-
1.next()不能得到带空格的字符串
-
2.nextLine()以Enter作为结束符
-
3.nextLine()可以获取空白
-
nextInt() int 型
流程控制
选择结构
if 单选择结构
public class Demo_if_1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入:");
String str= scanner.nextLine();
if(str.equals("hello")){
System.out.println("就是hello");
}
System.out.println("下一位");
scanner.close();
boolean a=true;
if(a==true){
System.out.println("if单循环");
}
}
}
if双选择结构
package com.chen.base.choose;
import java.util.Scanner;
public class Demo_if_2 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入:");
String str= scanner.nextLine();
if(str.equals("hello")){
System.out.println("就是hello");
}
else
System.out.println("下一位");
scanner.close();
}
}
if多选择结构
public class Demo_if_3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int grade = scanner.nextInt();
if (grade<=100&&grade>=0) {
if (grade <= 100 && grade >= 80) {
System.out.println("您的成绩为优");
} else if (grade < 80 && grade >= 70) {
System.out.println("您的成绩为良");
} else if (grade < 70 && grade >= 60) {
System.out.println("您的成绩为中");
} else if (grade < 60 && grade >= 0) {
System.out.println("很遗憾未合格");
}
}else{
System.out.println("请输入正确成绩!!!!");
}
scanner.close();
}
}
使用switch多选择结构来判断成绩
public static void main(String[] args) {
/*
要求:
1、输入一个学生的考试成绩(分数),利用成绩的值判断学生等级。
2、等级:
满分:[100]
优秀:[90-99]
良好:[80-89)
中等:[70-79)
及格:[60-69)
不及格:[0-59)
3、要求成绩是一个合法的数字,成绩必须在[0-100]之间,成绩可能带有小数。
使用switch语句实现。
*/
Scanner input = new Scanner(System.in);
//思路1.我们需要自主输入一个学生成绩的分数
System.out.println("请输入学生成绩,我将为您判断他的等级");
double score = input.nextDouble();
//思路2.我们需要创建一个变量,用来存储学生成绩分数,包含小数
switch((int) score/10){
//思路3.利用成绩的值来进行判断学生所在的等级区间,因为/具有舍去小数
case 0:case 1:case 2:case 3:case 4:case 5:
System.out.println(score + "分,不及格");
break;
case 6:
System.out.println(score + "分,及格");
break;
case 7:
System.out.println(score + "分,中等");
break;
case 8:
System.out.println(score + "分,良好");
break;
case 9:
System.out.println(score + "分,优秀");
break;
case 10:
if(score==100){ //思路4.将101到109的分数去掉
System.out.println(score + "分,满分");
break;
}
default:
System.out.println("抱歉,您所输入的分数不在范围内,信息有误");
break;
}
}
}
嵌套的if结构
if(){
if(){
}
}
switch多选择结构
- switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
- switch语句中的变量类型可以是:
- byte,short,int,char
- switch支持字符串String类型
- 同时case标签必须为字符串常量或字面量
public class Demo_switch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
int grade = scanner.nextInt();
switch (grade){
case 1:
System.out.println("棒");
break;
case 2:
System.out.println("很棒");
break;
case 3:
System.out.println("超级棒");
break;
循环结构
-
while结构
while循环是最简单的循环
while(布尔表达式){
//循环体
}
-
只要布尔表达式为true,循环就会一直执行下去
-
我们大部分让循环停下来的方式,就是让表达式失效的方式来结束循环
-
很少的情况需要一直执行下去,比如服务器的请求相应监听
package com.chen.base.choose; public class Demo_while { public static void main(String[] args) { //计算1+2+……+100 int i=0; int sum=0; while(i<100){ ++i; sum=i+sum; } System.out.println(sum); } }
package com.chen.base.choose; //遍历从1-10 public class Demo_while2 { public static void main(String[] args) { int i=0; while(i<10){ ++i; System.out.println(i); } } }
package com.chen.base.choose; public class Demo_while3 { public static void main(String[] args) { //死循环 while(true){ //等待客户端链接 //定时检查 //监听 } } }
public class Dome_while4 { public static void main(String[] args) { //输出1-1000之间能被5整除的数,且每行输出3个 int i=0; int count=0; while(i<1000){ ++i; count++; if(i%5==0){ System.out.print(i+" "); if(count%3==0){ System.out.println(" "); } } } } }
-
-
do…while结构
do{
//循环体
}while(布尔表达式);
- while 和 do-while 的区别:
- while先判断后执行。do _while是先执行后判断
- do…while总是保证循环体会至少执行一次,这是他们的主要差别
package com.chen.base.choose; public class Dome_do_while { public static void main(String[] args) { int i=0; int sum=0; do{ sum=sum+i; ++i; }while(i<=100); System.out.println(sum); } }
- while 和 do-while 的区别:
-
for结构
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
for循环执行的次数是在执行前就确定的
for(初始化;布尔表达式;更新){
//循环体
}
public class Doemo_for1 {
public static void main(String[] args) {
int sum1=0;
int sum2=0;
//1-100 奇数和 && 偶数和
for(int i=0;i<=100;++i){
if(i%2==0){
sum1=sum1+i;
}else{
sum2=sum2+i;
}
}
System.out.println("偶数和为:"+sum1);
System.out.println("奇数和为:"+sum2);
}
}
package com.chen.base.choose;
//1-1000内能被5整除且输出的值每行3个
public class Doemo_for2 {
public static void main(String[] args) {
int count=0;
for(int i=1;i<=1000;++i){
if(i%5==0){
count++;
System.out.print(i+" ");
if (count%3==0){
System.out.println(" ");
}
}
}
}
}
public class Dome_for_99 {
public static void main(String[] args) {
for(int i=1;i<=9;++i){
//99乘法表
for(int j=1;j<=i;++j){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println(" ");//输出完一行就换下一行
}
}
}
增强for循环
Java增强for循环的语法格式:
for(声明语句:表达式){
//代码句子
}
-
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此同时数组元素的值相等
-
表达式:表达式时要访问的数组名,或者是返回值为数组的方法
package com.chen.base.choose;
public class Demo_forqing {
public static void main(String[] args) {
int []number={1,2,3,4,5,6,7,8,8,9}; //增强for循环,数组的定义
for(int x:number){//效果等同于for(int i=0;i<10;++i)
System.out.println(number[x]);
}
}
}
java数组定义
数组类型[] 数组名 = new 数组类型[数组长度];
数组类型[] 数组名 = new 数组类型[]{数组元素0,数组元素1,…};
数组类型[] 数组名 = {数组元素0,数组元素1,…};
break continue
- break在任何循环语句的主体部分,军可用break控制循环的流程。break用与强制退出循环,不执行循环中剩余的语句。
- continue 语句用在循环语句中,用于终止某次循环过程,及跳出循环体中尚未执行的语句,接着进行下一次是否执行循环的判定