一、数据的输入
使用Scanner类从键盘获取不同类型的变量.
java类库中某些类在使用时需要提前导入,java.lang包中的类或接口不需要导入.
具体实现步骤:
- 导包( import 包名): import java.util.Scanner;在eclipse中使用ctrl+shift+o键快速导入所需的包
- Scanner的实例化(创建输入对象): Scanner 输入对象名 = new Scanner(System.in);
- 调用Scanner类的相关方法(next()/nextXxxx()),来获取指定类型的变量,对于char型的获取,Scanner没有提供相关方法,只能获取一个字符串
import java.util.Scanner;
class ScannerTest{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.ou.println("请输入你的姓名“);//输入数据前最好有一个提示性的输出语句
String name = scan.next();
System.out.println(name);
System.out.println("请输入你的年龄“);
int age = scan.nextInt();
System.out.println(age);
System.ou.println("请输入你的体重“);
double weight = scan.nextDouble();
System.out.println(weight );
//找到指定位置的索引字符
System.ou.println("请输入你的性别“);
String gender = scan.next();
char genderChar = gender.charAt(0);//获取索引为0位置上的字符
}
}
注意:需要根据相应方法输入指定类型值,若输入数据类型不匹配,则报异常:InputMisMatchExcption
二、程序流程控制
- 顺序结构
从上往下执行没有任何判断和中断 - 分支结构
根据条件选择性执行
if- else和switch-case两种 - 循环结构
根据循环条件重复执行
while、do..while、for三种
(一)两种分支结构
if语句三种格式
if-else例题:
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
//从键盘上输入一个成绩,判断属于哪个等级。
//90-100 A 。 80-89 B。70-79 C。60-69 D。 0-59 E
Scanner in = new Scanner(System.in);
System.out.printf("请输入一个成绩:");
char grade;
int score = in.nextInt();
if(score >=0 && score <=100) {
if(score>=90) grade ='A'
else if(score>=80) grade ='B'
else if(score>=70) grade ='C'
else if(score>=60) grade ='D'
else grade ='E'
System.out.println("成绩等级为:"+grade);
}
else {
System.out.println("你输入的成绩不在0-100这个范围。");
}
swich-case结构
swich-case例题:
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
//从键盘上输入一个成绩,判断属于哪个等级。
//90-100 A 。 80-89 B。70-79 C。60-69 D。 0-59 E
Scanner in = new Scanner(System.in);
System.out.printf("请输入一个成绩:");
char grade;
int score = in.nextInt();
if(score >=0 && score <=100) {
switch(score/10) {
case 10:
case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
default:grade='E';
}
System.out.println("成绩等级为:"+grade);
}else {
System.out.println("你输入的成绩不在0-100这个范围。");
}
}
}
说明:①根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
②当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。
③switch结构中的表达式,只能是如下的6种数据类型之一: byte 、
short、char、 int、 枚举类型、String类型
④case之后只能声明常量,不能声明范围
(二)三种循环结构
for循环
for(初始化条件;循环条件;迭代条件){
循环体;
}
例题:
//遍历100以内的偶数,输出所有偶数的和,输出偶数的个数
class forTest{
public static void main (String[] args){
int sum = 0;//记录所有偶数的和
int count = 0;//记录偶数的个数
for(int i = 1;i <= 100;i++){
if(i%2==0){
System . out. print1n(i);
sum += i;
count++;
}
}
System. . out. println("总和为:”+ sum);
System . out. print1n("个数为:”+ count);
}
}
while循环
初始化定义;
while(循环条件){
循环体;
迭代条件;//不要丢了迭代条件,否则出现死循环
}
//遍历100以内的所有偶数
class WhileTest{
public static void main(String[] args){
int i = 1;
while(i<= 100){
if(i%2== 0){
System.out.println(i)_;
}
i++; //i出了while循环仍能用
}
do while循环
初始化定义;
do{
循环体;
迭代条件;
}while(循环条件);
//遍历100以内的所有偶数
class DoWhileTest{
public static void main(String[] args){
int num = 1;
do{
if(i%2== 0){
System.out.println(num)_;
}
num++;
}while(num<=100);
}
}
(三)嵌套循环
- 外层循环控制行数,内层循环控制列数
//应用一:九九乘法表:
class NineNineTest{
public static void main(String[] args){
for(int i = 1; i<9; i++){
for(int j = 1; j< = i ; j++){
System.out.print(i+"*"+j+"="+(i*j)+" ");
}
System.out.println();
}
}
}
//应用二:100以内的所有质数的输出
//注:质数:素数,只有1和它本身整出的自然数。从2开始,到这个数-1结束,都不能被这个数本身整除。最小的质数是2
class PrimeNumberTest{
public static void main(String[] args){
boolean isFlag = true; //用来标识i是否被除尽,一旦除尽,修改其值
int count = 0;
for(int i = 2; i<+100;i++){ //遍历100以内的自然数
for (int j = 2;j < i ; j ++){
if(i%j ==0){
isFlag = false;
break;
}
}
if(isFlag == true){
count++;
}
isFlag = true; // 重置isFlag
}
System.out.println("质数的个数为:"+count);
}
}
(四)关键字的使用
- break和continue的使用:
- 带标签的break和continue使用: