Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “简单开关输入”;至于;循环和toLowerCase()方法_Java - Fatal编程技术网

Java “简单开关输入”;至于;循环和toLowerCase()方法

Java “简单开关输入”;至于;循环和toLowerCase()方法,java,Java,我是Java的初学者。我正在做一个简单的切换,用户用文字输入一个数字。对于训练,我添加了一个“For”循环 我的问题是:为什么第一个循环生成默认代码?我应该做两台扫描仪吗?一个用于计数器的取值,另一个用于开关? 为什么文字中的计数器和数字不能正常工作 我知道我可以用表格等来做,但一般来说,这个程序的目的是测试“toLowerCase()”方法。你在检查小写(“三”)和大写(“三”)的字符串。确保它们完全相同,并且不会失败。将案例重新键入: case "one":

我是Java的初学者。我正在做一个简单的切换,用户用文字输入一个数字。对于训练,我添加了一个“For”循环

我的问题是:为什么第一个循环生成默认代码?我应该做两台扫描仪吗?一个用于计数器的取值,另一个用于开关? 为什么文字中的计数器和数字不能正常工作


我知道我可以用表格等来做,但一般来说,这个程序的目的是测试“toLowerCase()”方法。

你在检查小写(“三”)和大写(“三”)的字符串。确保它们完全相同,并且不会失败。

将案例重新键入:

            case "one":
                System.out.println("CHOICE 1");
                break;
            case "two":
                System.out.println("CHOICE 2");
                break;
            case "three":
                System.out.println("CHOICE 3");
                break;
            case "four":
                System.out.println("CHOICE 4");
                break;
            case "five":
                System.out.println("CHOICE 5");
                break;

开关语句

在switch子句中,您正在测试一个已转换为小写形式的
字符串。因此,唯一可能匹配的大小写子句是“one”,因为其他子句都包含大写字符

只要正确输入数据,将所有case子句都更改为小写,它就可以工作

case "one":
    System.out.println("CHOICE 1");
    break;
case "two":
    System.out.println("CHOICE 2");
    break;
case "three":
    System.out.println("CHOICE 3");
    break;
 case "four":
    System.out.println("CHOICE 4");
    break;
 case "five":
    System.out.println("CHOICE 5");
    break;
不接受输入

关于程序不接受输入的问题,您必须在调用
sck.nextLine()
后调用
sck.nextLine()
,请参阅以获取有关原因的详细信息


只需要一个扫描程序。

switch语句的约定类似于if-else-if-else链。放置在switch语句括号之间的值将根据switch语句中存在的每种情况进行计算

switch语句:

String condition = "foo";

switch(condition){
    case "example":{
    }

    case "foo":{
    }

    case "bar":{
    }

    default:{
    }
}
与表达式类似:

if(condition.equals("example")){

}else if(condition.equals("foo")){

}else if(condition.equals("bar")){

}else{

}
请注意,通过将您的输入设置为小写,switch语句将永远不会匹配任何大写

e、 g:

将永远不会计算为true,因为在对“三”进行区分大小写的比较之前,“三”是第一个被降到所有小写的“三”

为什么第一个循环生成默认代码

如中所述,
nextInt
不使用换行符。添加对
sck.nextLine()的调用计数器后的code>

我应该做两台扫描仪吗?一个用于计数器的取值,另一个用于开关

不需要,只需要一个
扫描仪

为什么文字中的计数器和数字不能正常工作


首先,您的
for
循环条件是
iOk,我添加了更改,它工作正常。现在我将尝试使输入单词成为可能,不管它们是大写还是小写。谢谢你的帮助!太多了

package JavaExc;
import java.util.Scanner;

public class JavaStart {

public static void main(String[] args) {
    Scanner sck = new Scanner(System.in);
    System.out.println("Type loop counter ");

    int counter = sck.nextInt();
    sck.nextLine(); 
    System.out.println("Counter is: " + counter );

    int i;
    for ( i = 0; i < counter; i++) {


        System.out.println("Type number in words");
        String ch = sck.nextLine();

        switch (ch.toLowerCase()) {


            case "one":
                System.out.println("CHOICE 1");
                break;
            case "two":
                System.out.println("CHOICE 2");
                break;
            case "three":
                System.out.println("CHOICE 3");
                break;
            case "four":
                System.out.println("CHOICE 4");
                break;
            case "five":
                System.out.println("CHOICE 5");
                break;

            default:
                System.out.println("Wrong Data");
                break;

        }

        System.out.println("Loops left:\n " + (counter - i - 1)  );

    }
    System.out.println("End of Switch");


}}
包JavaExc;
导入java.util.Scanner;
公共类JavaStart{
公共静态void main(字符串[]args){
扫描仪sck=新扫描仪(System.in);
System.out.println(“类型循环计数器”);
int counter=sck.nextInt();
sck.nextLine();
System.out.println(“计数器为:“+计数器”);
int i;
对于(i=0;i
ch的值是多少?如果你将ch转换成小写,你将永远看不到大写字母。“三”、“四”和“五”的意义是什么?“三”和“三”不一样。Java是区分大小写的,所以请阅读我想转换字符串,不管它是大写还是小写,所以这里是wierd字符串,比如四,五等等。我理解。我想转换字符串,不管它是大写还是小写,并尝试匹配大小写。@m4rtin77继续使用toLowerCase()方法,但请确保代码中的每个大小写都是小写的。在这种情况下,一个最初是大小写混合的字符串将被转换为小写,然后再与您提供的其中一个大小写进行匹配。非常感谢你的解释。
if(condition.equals("example")){

}else if(condition.equals("foo")){

}else if(condition.equals("bar")){

}else{

}
if("tHREE".toLowerCase().equals("tHREE")){
package JavaExc;
import java.util.Scanner;

public class JavaStart {

public static void main(String[] args) {
    Scanner sck = new Scanner(System.in);
    System.out.println("Type loop counter ");

    int counter = sck.nextInt();
    sck.nextLine(); 
    System.out.println("Counter is: " + counter );

    int i;
    for ( i = 0; i < counter; i++) {


        System.out.println("Type number in words");
        String ch = sck.nextLine();

        switch (ch.toLowerCase()) {


            case "one":
                System.out.println("CHOICE 1");
                break;
            case "two":
                System.out.println("CHOICE 2");
                break;
            case "three":
                System.out.println("CHOICE 3");
                break;
            case "four":
                System.out.println("CHOICE 4");
                break;
            case "five":
                System.out.println("CHOICE 5");
                break;

            default:
                System.out.println("Wrong Data");
                break;

        }

        System.out.println("Loops left:\n " + (counter - i - 1)  );

    }
    System.out.println("End of Switch");


}}