變量與數(shù)據(jù)類型(三)

一、通過args數(shù)組獲取數(shù)據(jù)

通過main方法的args數(shù)組可以從控制臺(tái)獲取一組字符串?dāng)?shù)據(jù)。

【案例】給main方法分args數(shù)組輸入兩個(gè)整數(shù),對(duì)這兩個(gè)整數(shù)進(jìn)行四則運(yùn)算,結(jié)果如下所示:


運(yùn)算結(jié)果.png
代碼
public class Test15 {
    public static void main(String[] args) {
        int a=Integer.parseInt(args[0]);
        int b=Integer.parseInt(args[1]);
        System.out.println(a+"+"+b+"="+(a+b));
        System.out.println(a+"-"+b+"="+(a-b));
        System.out.println(a+"*"+b+"="+a*b);
        System.out.println(a+"/"+b+"="+a/b);
    }
}
結(jié)果:
10+3=13
10-3=7
10*3=30
10/3=3

注意:運(yùn)行時(shí),按照下圖所示操作
步驟一:

圖一 .png

步驟二:

圖二.png

步驟三:

圖三.png

二、通過Scanner從控制臺(tái)獲取數(shù)據(jù)

1、概述

  • Scanner類用于掃描從控制臺(tái)輸入的數(shù)據(jù),可以接收字符串和基本數(shù)據(jù)類型的數(shù)據(jù)。
  • Scanner類位于java.util.Scanner包中。

2、Scanner類的常用方法

<1> String next();
作用:接收控制臺(tái)輸入的一個(gè)字符串。next是以空格或回車作為一次數(shù)據(jù)輸入的結(jié)束,因此,next方法不能將空格作為字符串接收。
<2>String nextLine();
作用:接收控制臺(tái)輸入的一個(gè)字符串。nextLine是以回車作為數(shù)據(jù)輸入的結(jié)束,因此,nextLine可以接收空格作為字符串的一部分。
<3>int nextInt();
作用:接收控制臺(tái)輸入的一個(gè)int類型的數(shù)據(jù)。
<4>double nextDouble();
作用:接收控制臺(tái)輸入的一個(gè)double類型的數(shù)據(jù)。
<5>boolean nextBoolean();
作用:接收控制臺(tái)輸入的一個(gè)boolean類型的數(shù)據(jù)。
<6>輸入char類型的數(shù)據(jù)
Scanner類沒有提供直接輸入char類型的方法,可以通過charAt()方法從next()或nextLine()獲取輸入的字符。
char String.charAt(int index);
作用:從字符串中獲取指定下標(biāo)的字符,下標(biāo)從0開始。
例如:“abc”.charAt(0)的結(jié)果是a。
例如:“abc”.charAt(1)的結(jié)果是b。
例如:next().charAt(0);從控制臺(tái)輸入的字符串中獲取第一個(gè)字符。

3、使用步驟

步驟1、創(chuàng)建Scanner類的一個(gè)對(duì)象。

示例:
Scanner scanner=new Scanner(System.in);
System.in這個(gè)參數(shù)用來指定scanner接收控制臺(tái)輸入的數(shù)據(jù)。

步驟2、通過scanner調(diào)用next等方法,接收控制臺(tái)輸入的數(shù)據(jù)。

示例:
System.out.println("姓名:");
String name=scanner.next();

4、案例

【示例】從控制臺(tái)輸入多種類型的數(shù)據(jù)
通過控制臺(tái)輸入一個(gè)人的姓名、性別、年齡、身高和性格,然后讓該人和大家做自我介紹。


結(jié)果.png
代碼
public class Test16 {
    public static void main(String[] args) {
        //步驟1、創(chuàng)建Scanner對(duì)象
        Scanner scanner=new Scanner(System.in);
        //步驟2、向控制臺(tái)輸出文本
        System.out.println("姓名:");
        //步驟3、接收輸入的姓名字符串
        String name=scanner.next();
        System.out.println("性別:");
        char sex=scanner.next().charAt(0);
        System.out.println("年齡:");
        int age=scanner.nextInt();
        System.out.println("身高:");
        double height=scanner.nextDouble();
        System.out.println("性格:");
        String type=scanner.next();
        System.out.println("嗨,大家好,俺叫"+name+",今年"+age+"歲,身高"+height+"米,俺是一個(gè)"+type+sex+"士");
    }
}
結(jié)果:
姓名:
張飛
性別:
男
年齡:
35
身高:
1.99
性格:
豪放的
嗨,大家好,俺叫張飛,今年35歲,身高1.99米,俺是一個(gè)豪放的男士

三、變量的自加、自減、自乘、自除運(yùn)算

  • 自增是一個(gè)變量在原有值基礎(chǔ)上再增加指定值。
  • 自減是一個(gè)變量在原有值基礎(chǔ)上再減去指定值。
  • 自乘是一個(gè)變量在原有值基礎(chǔ)上再乘以指定值。
  • 自除是一個(gè)變量在原有值基礎(chǔ)上再除以指定值。

1、自增

1>整形變量的自增;

int i=0;
i=i+1;

2>字符串類型變量的自增

String space="";
space=space=" ";    //雙引號(hào)中間有一個(gè)空格

3>自增運(yùn)算的簡(jiǎn)寫形式:
<1>先加1:++i

示例:
int i=1;
System.out.println(++i);輸出的結(jié)果是2,變量i的值是2
String space="";
space+=" ";

<2>后加1:i++

示例:
int i=1;
System.out.println(i++);輸出的結(jié)果是1,變量i的值是2

4>自增n

自增n:i+=n
等效于:i=i+n
示例:
     i+=5;  // i=i+5;

2、自減

1>先減1:--i

示例:
int i=1;
System.out.println(--i);輸出的結(jié)果是0,變量i的值是0

2>后減1:i--

示例:
int i=1;
System.out.println(i--);輸出的結(jié)果是1,變量i的值是0

3>自減n

自減n:i-=n
等效于:i=i-n
示例:
     i+-=5;  // i=i-5;

3、自乘n

自乘n:i*=n
等效于:i=i*n
示例:
double d=2;
d*=5;  //d=2*5;

4、自除n

自除n:i/=n
等效于:i=i/n
示例:
double d=15;
d/=5;  //d=15/5;

四、交換兩個(gè)變量的值

兩個(gè)變量值互換是基本的算法,在排序等算法中應(yīng)用。

已知:int a=100; int b=10; 交換兩個(gè)變量值,使得a=10,b=100;

解法一:
錯(cuò)誤代碼:
a=b;
b=a;
正確代碼:
int c=a;
a=b;
b=c;

解法二:
不借助第三個(gè)變量,僅在兩個(gè)變量之間交換值。
步驟1、a=a+b;
結(jié)果:a=a+b,b=b
步驟2、b=a-b;
結(jié)果:a=a+b,b=a
步驟3、a=a-b;
結(jié)果:a=b,b=a

五、Java的錯(cuò)誤類型

程序的錯(cuò)誤分為編譯期語法錯(cuò)誤、運(yùn)行期異常錯(cuò)誤和運(yùn)行期邏輯錯(cuò)誤。

1、編譯期語法錯(cuò)誤

可以借助Eclipse的幫助方便的定位錯(cuò)誤,并進(jìn)行修改。

2、運(yùn)行期異常

系統(tǒng)會(huì)提示錯(cuò)誤的類型和出錯(cuò)的位置。


運(yùn)行期.png

3、邏輯錯(cuò)誤

邏輯錯(cuò)誤是指程序可以編譯運(yùn)行,但程序執(zhí)行的結(jié)果卻不是預(yù)期的效果。


邏輯錯(cuò)誤.png

六、Debug調(diào)試

1、概述

  • 調(diào)試是查找、解決軟件中邏輯錯(cuò)誤代碼(稱為bug:軟件臭蟲)的重要手段,是軟件開發(fā)中必不可少的環(huán)節(jié)。
  • 調(diào)試也是學(xué)習(xí)、研究其他人編寫的代碼的一個(gè)很好地手段。
  • Eclipse提供了強(qiáng)大的代碼調(diào)試功能-Debug,通過Debug視圖能快速定位代碼中的邏輯錯(cuò)誤,提高軟件開發(fā)效率。

2、Debug視圖

步驟見下圖

Debug-1.png
Debug-2.png
Debug-3.png

3、斷點(diǎn)

  • 斷點(diǎn)是在源代碼的可執(zhí)行部分的指定行設(shè)置一個(gè)標(biāo)志,在調(diào)試運(yùn)行方式下,程序運(yùn)行到該斷點(diǎn)標(biāo)志處會(huì)自動(dòng)暫停,等待下一步操作。
  • 通過設(shè)置斷點(diǎn)可以快速執(zhí)行斷點(diǎn)之前的代碼,然后在斷點(diǎn)處暫停,這時(shí)可以換單個(gè)命令運(yùn)行的方式來運(yùn)行程序,查找程序中德邏輯錯(cuò)誤。
  • 斷點(diǎn)設(shè)置的位置應(yīng)該是程序員懷疑錯(cuò)誤代碼的附近位置,即對(duì)出錯(cuò)位置的定性分析,是一個(gè)大概的位置。
調(diào)試.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 12,425評(píng)論 6 13
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,727評(píng)論 18 399
  • 生活還需記錄,再怎么樣,想寫就寫。 六月中旬,最近工作狀態(tài)不在正軌,這個(gè)禮拜前自己都是很滿意的!早起看看書,鍛煉身...
    蝸牛與黃鸝閱讀 197評(píng)論 0 0
  • 1.快捷鍵 Ctrl + C:這個(gè)是用來終止當(dāng)前命令的快捷鍵,當(dāng)然你也可以輸入一大串字符,不想讓它運(yùn)行直接Ctrl...
    neverstoptrying閱讀 219評(píng)論 2 0
  • 密枝寥寥起了眷戀, 幾點(diǎn)似靜非靜處, 已是濃蔭,夏深。 淡去斜陽(yáng)萬點(diǎn), 摔在葉梢頭, 恰是,一處藕色如黃。 閑倚樓...
    春余清歌閱讀 354評(píng)論 0 2

友情鏈接更多精彩內(nèi)容