一谴古、數(shù)據(jù)的輸入
使用Scanner類從鍵盤獲取不同類型的變量.
java類庫中某些類在使用時(shí)需要提前導(dǎo)入乏悄,java.lang包中的類或接口不需要導(dǎo)入.
具體實(shí)現(xiàn)步驟:
- 導(dǎo)包( import 包名): import java.util.Scanner;在eclipse中使用ctrl+shift+o鍵快速導(dǎo)入所需的包
- Scanner的實(shí)例化(創(chuàng)建輸入對象): Scanner 輸入對象名 = new Scanner(System.in);
- 調(diào)用Scanner類的相關(guān)方法(next()/nextXxxx())弱匪,來獲取指定類型的變量颠焦,對于char型的獲取卒废,Scanner沒有提供相關(guān)方法税灌,只能獲取一個(gè)字符串
import java.util.Scanner;
class ScannerTest{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.ou.println("請輸入你的姓名“);//輸入數(shù)據(jù)前最好有一個(gè)提示性的輸出語句
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位置上的字符
}
}
注意:需要根據(jù)相應(yīng)方法輸入指定類型值螟凭,若輸入數(shù)據(jù)類型不匹配虚青,則報(bào)異常:InputMisMatchExcption
二、程序流程控制
- 順序結(jié)構(gòu)
從上往下執(zhí)行沒有任何判斷和中斷 - 分支結(jié)構(gòu)
根據(jù)條件選擇性執(zhí)行
if- else和switch-case兩種 - 循環(huán)結(jié)構(gòu)
根據(jù)循環(huán)條件重復(fù)執(zhí)行
while螺男、do..while棒厘、for三種
(一)兩種分支結(jié)構(gòu)
if語句三種格式
if-else例題:
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
//從鍵盤上輸入一個(gè)成績,判斷屬于哪個(gè)等級(jí)下隧。
//90-100 A 奢人。 80-89 B。70-79 C淆院。60-69 D何乎。 0-59 E
Scanner in = new Scanner(System.in);
System.out.printf("請輸入一個(gè)成績:");
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("成績等級(jí)為:"+grade);
}
else {
System.out.println("你輸入的成績不在0-100這個(gè)范圍。");
}
swich-case結(jié)構(gòu)
swich-case例題:
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
//從鍵盤上輸入一個(gè)成績土辩,判斷屬于哪個(gè)等級(jí)支救。
//90-100 A 。 80-89 B拷淘。70-79 C各墨。60-69 D。 0-59 E
Scanner in = new Scanner(System.in);
System.out.printf("請輸入一個(gè)成績:");
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("成績等級(jí)為:"+grade);
}else {
System.out.println("你輸入的成績不在0-100這個(gè)范圍启涯。");
}
}
}
說明:①根據(jù)switch表達(dá)式中的值贬堵,依次匹配各個(gè)case中的常量恃轩。一旦匹配成功,則進(jìn)入相應(yīng)case結(jié)構(gòu)中黎做,調(diào)用其執(zhí)行語句叉跛。
②當(dāng)調(diào)用完執(zhí)行語句以后,則仍然繼續(xù)向下執(zhí)行其他case結(jié)構(gòu)中的執(zhí)行語句蒸殿,直到遇到break關(guān)鍵字或此switch-case結(jié)構(gòu)末尾結(jié)束為止昧互。
③switch結(jié)構(gòu)中的表達(dá)式,只能是如下的6種數(shù)據(jù)類型之一: byte 伟桅、
short敞掘、char、 int楣铁、 枚舉類型玖雁、String類型
④case之后只能聲明常量,不能聲明范圍
(二)三種循環(huán)結(jié)構(gòu)
for循環(huán)
for(初始化條件盖腕;循環(huán)條件赫冬;迭代條件){
循環(huán)體;
}
例題:
//遍歷100以內(nèi)的偶數(shù)溃列,輸出所有偶數(shù)的和劲厌,輸出偶數(shù)的個(gè)數(shù)
class forTest{
public static void main (String[] args){
int sum = 0;//記錄所有偶數(shù)的和
int count = 0;//記錄偶數(shù)的個(gè)數(shù)
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("個(gè)數(shù)為:”+ count);
}
}
while循環(huán)
初始化定義;
while(循環(huán)條件){
循環(huán)體听隐;
迭代條件补鼻;//不要丟了迭代條件,否則出現(xiàn)死循環(huán)
}
//遍歷100以內(nèi)的所有偶數(shù)
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循環(huán)仍能用
}
do while循環(huán)
初始化定義雅任;
do{
循環(huán)體风范;
迭代條件;
}while(循環(huán)條件)沪么;
//遍歷100以內(nèi)的所有偶數(shù)
class DoWhileTest{
public static void main(String[] args){
int num = 1;
do{
if(i%2== 0){
System.out.println(num)_;
}
num++硼婿;
}while(num<=100);
}
}
(三)嵌套循環(huán)
- 外層循環(huán)控制行數(shù),內(nèi)層循環(huán)控制列數(shù)
//應(yīng)用一:九九乘法表:
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();
}
}
}
//應(yīng)用二:100以內(nèi)的所有質(zhì)數(shù)的輸出
//注:質(zhì)數(shù):素?cái)?shù)禽车,只有1和它本身整出的自然數(shù)寇漫。從2開始,到這個(gè)數(shù)-1結(jié)束殉摔,都不能被這個(gè)數(shù)本身整除州胳。最小的質(zhì)數(shù)是2
class PrimeNumberTest{
public static void main(String[] args){
boolean isFlag = true; //用來標(biāo)識(shí)i是否被除盡,一旦除盡钦勘,修改其值
int count = 0;
for(int i = 2; i<+100;i++){ //遍歷100以內(nèi)的自然數(shù)
for (int j = 2;j < i ; j ++){
if(i%j ==0){
isFlag = false陋葡;
break;
}
}
if(isFlag == true){
count++彻采;
}
isFlag = true; // 重置isFlag
}
System.out.println("質(zhì)數(shù)的個(gè)數(shù)為:"+count);
}
}
(四)關(guān)鍵字的使用
- break和continue的使用:
- 帶標(biāo)簽的break和continue使用: