我正在探索這段代碼,它給出了元音和輔音的數量,但不理解這else if (ch >= 'a' && ch <= 'z')行代碼。請告訴我這背后的邏輯是什么。
import java.util.Scanner;
public class Vowels {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("Enter string");
String str = sc.nextLine();
int vowl = 0;
int conso = 0;
for (int i = 0; i < str.length(); i ) {
char ch = str.charAt(i);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
vowl ;
} else if (ch >= 'a' && ch <= 'z') {
conso ;
}
}
System.out.println(vowl);
System.out.println(conso);
}
}
uj5u.com熱心網友回復:
字符比較的方式可能會造成混亂,正如你可以從
注意 if 陳述句捕獲所有元音
whats ever is not a vowel 將是大寫字母、數字、特殊字符或輔音
else if (ch >= 'a' && ch <= 'z')
這檢查它是否不是元音它是否至少落在小寫字母'a'-'z'的范圍內并且不是特殊字符或數字.(我們知道它不是元音,而是在 ascii 范圍內 26=a -51=z)
請參閱 ASCII 表以了解范圍比較
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/453409.html
上一篇:當我在Python中使用Iflese時,a的真值不明確
下一篇:any()和if陳述句背后的邏輯
