Doubt about the IF

12

Does the IF function only work with Integer or does it also work with String? I was trying to create a program that would ask if you are sure you want to create the password. You can check the code below:

package com.programas.Verificacao2;
import java.util.Scanner;

public class VoceTemCertezaVerifi {
    public static void main(String[] args) {

     int campo1 = 0, campo2 = 0;
     int sim = 0, não = 0;

     String s = "sim";


    Scanner in = new Scanner(System.in);

      System.out.println("Digite Sua Senha:");
      campo1 = in.nextInt();

      System.out.println("Digite novamente sua senha:");
      campo2 = in.nextInt();

      System.out.println("Você tem certeza?");
      s = in.nextLine();

      if(s == sim) {System.out.println("Senha Criada.");}else{
          if(s == não) {System.out.println("Ação Cancelada");
      }


    }
}
}
    
asked by anonymous 27.01.2016 / 02:07

1 answer

18

To compare string, use equals :

String opcao = "sim";

  if(opcao.equals("sim")){
   System.out.println("Senha Criada.");
  else{
    System.out.println("Ação Cancelada");
  }

For the code posted, you can change the validation so that it receives a String , then just compare using the example above:

public static void main (String[] args) {

     int campo1 = 0, campo2 = 0;
     String confirmacao;
     Scanner in = new Scanner(System.in);

      System.out.println("Digite Sua Senha:");
      campo1 = in.nextInt();

      System.out.println("Digite novamente sua senha:");
      campo2 = in.nextInt();

      System.out.println("Você tem certeza?(Digite sim ou nao)");
      confirmacao = in.next();

  if(confirmacao.equals("sim")) {
    System.out.println("Senha Criada.");
    }else{
          System.out.println("Ação Cancelada");
      }
    }

Another alternative is to use switch , so if you do not type anything and give enter , you may see a different message:

public static void main(String[] args) {

        int campo1 = 0, campo2 = 0;
        String confirmacao;
        Scanner in = new Scanner(System.in);

        System.out.println("Digite Sua Senha:");
        campo1 = in.nextInt();

        System.out.println("Digite novamente sua senha:");
        campo2 = in.nextInt();

        System.out.println("Você tem certeza?(Digite sim ou nao)");
        confirmacao = in.next();

        switch (confirmacao) {
            case "sim":
                System.out.println("Senha Criada.");
                break;
            case "nao":
                System.out.println("Ação Cancelada");
                break;
            default:
                System.out.println("Opção digitada inválida");
        }
    
27.01.2016 / 02:11